首页
学习
活动
专区
圈层
工具
发布

Pandas 数据分析技巧与诀窍

Pandas是一个建立在NumPy之上的开源Python库。Pandas可能是Python中最流行的数据分析库。它允许你做快速分析,数据清洗和准备。...Pandas的一个惊人之处是,它可以很好地处理来自各种来源的数据,比如:Excel表格、CSV文件、SQL文件,甚至是网页。 在本文中,我将向您展示一些关于Pandas中使用的技巧。...要直接更改数据帧而不返回所需的数据帧,可以添加inplace=true作为参数。 出于解释的目的,我将把数据框架称为“数据”——您可以随意命名它。...在不知道索引的情况下检索数据: 通常使用大量数据,几乎不可能知道每一行的索引。这个方法可以帮你完成任务。因此,在因此,在“数据”数据框中,我们正在搜索user_id等于1的一行的索引。...我们有用户用分数解决不同问题的历史,我们想知道每个用户的平均分数。找到这一点的方法也相对简单。

12.7K40

python机器学习:推荐系统实现(以矩阵分解来协同过滤)

我们将在下一个视频中详细讨论它是如何工作的,但让我们继续使用它。首先,我们传递了评分数据,但是我们将调用pandas的as_matrix()函数,以确保我们作为一个numpy矩阵数据类型传入。...首先,我们使用numpy的转置函数来触发矩阵,使每一列变成一行。 这只是使数据更容易处理,它不会改变数据本身。在矩阵中,每个电影有15个唯一的值代表该电影的特征。...我们可以通过查看movies_df数据框并使用pandas的loc函数通过其索引查找行来做到这一点。让我们打印出该电影的标题和流派。 接下来,让我们从矩阵中获取电影ID为5的电影属性。...这一行代码从矩阵的每一行中分别减去当前的电影特征。这给了我们当前电影和数据库中其他电影之间的分数差异。您也可以使用四个循环来一次减去一个电影,但使用numpy,我们可以在一行代码中完成。...第二步是取我们在第一步计算出的差值的绝对值,numpy的ABS函数给我们绝对值,这只是确保任何负数出来都是正值。接下来,我们将每个电影的15个单独的属性差异合并为一个电影的总差异分数。

1.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    python推荐系统实现(矩阵分解来协同过滤)

    我们将在下一个视频中详细讨论它是如何工作的,但让我们继续使用它。首先,我们传递了评分数据,但是我们将调用pandas的as_matrix()函数,以确保我们作为一个numpy矩阵数据类型传入。...首先,我们使用numpy的转置函数来触发矩阵,使每一列变成一行。 这只是使数据更容易处理,它不会改变数据本身。在矩阵中,每个电影有15个唯一的值代表该电影的特征。...我们可以通过查看movies_df数据框并使用pandas的loc函数通过其索引查找行来做到这一点。让我们打印出该电影的标题和流派。 接下来,让我们从矩阵中获取电影ID为5的电影属性。...这一行代码从矩阵的每一行中分别减去当前的电影特征。这给了我们当前电影和数据库中其他电影之间的分数差异。您也可以使用四个循环来一次减去一个电影,但使用numpy,我们可以在一行代码中完成。...第二步是取我们在第一步计算出的差值的绝对值,numpy的ABS函数给我们绝对值,这只是确保任何负数出来都是正值。接下来,我们将每个电影的15个单独的属性差异合并为一个电影的总差异分数。

    1.9K20

    python推荐系统实现(矩阵分解来协同过滤)|附代码数据

    我们将在下一个视频中详细讨论它是如何工作的,但让我们继续使用它。首先,我们传递了评分数据,但是我们将调用pandas的as_matrix()函数,以确保我们作为一个numpy矩阵数据类型传入。...首先,我们使用numpy的转置函数来触发矩阵,使每一列变成一行。 这只是使数据更容易处理,它不会改变数据本身。在矩阵中,每个电影有15个唯一的值代表该电影的特征。...我们可以通过查看movies_df数据框并使用pandas的loc函数通过其索引查找行来做到这一点。让我们打印出该电影的标题和流派。 接下来,让我们从矩阵中获取电影ID为5的电影属性。...这一行代码从矩阵的每一行中分别减去当前的电影特征。这给了我们当前电影和数据库中其他电影之间的分数差异。您也可以使用四个循环来一次减去一个电影,但使用numpy,我们可以在一行代码中完成。...第二步是取我们在第一步计算出的差值的绝对值,numpy的ABS函数给我们绝对值,这只是确保任何负数出来都是正值。接下来,我们将每个电影的15个单独的属性差异合并为一个电影的总差异分数。

    91000

    python推荐系统实现(矩阵分解来协同过滤)|附代码数据

    我们将在下一个视频中详细讨论它是如何工作的,但让我们继续使用它。首先,我们传递了评分数据,但是我们将调用pandas的as_matrix()函数,以确保我们作为一个numpy矩阵数据类型传入。...首先,我们使用numpy的转置函数来触发矩阵,使每一列变成一行。 这只是使数据更容易处理,它不会改变数据本身。在矩阵中,每个电影有15个唯一的值代表该电影的特征。...我们可以通过查看movies_df数据框并使用pandas的loc函数通过其索引查找行来做到这一点。让我们打印出该电影的标题和流派。 接下来,让我们从矩阵中获取电影ID为5的电影属性。...这一行代码从矩阵的每一行中分别减去当前的电影特征。这给了我们当前电影和数据库中其他电影之间的分数差异。您也可以使用四个循环来一次减去一个电影,但使用numpy,我们可以在一行代码中完成。...第二步是取我们在第一步计算出的差值的绝对值,numpy的ABS函数给我们绝对值,这只是确保任何负数出来都是正值。接下来,我们将每个电影的15个单独的属性差异合并为一个电影的总差异分数。

    1.2K10

    利用 Python 分析 MovieLens 1M 数据集

    1 links.csv [4jr3wscb5z.png] 文件里面的内容是帮助你如何通过网站id在对应网站上找到对应的电影链接的。...] 文件里面的内容包含了每一个用户对于每一部电影的评分。...,使用基于标签的索引.loc或基于位置的索引.iloc [qkaq8t5a8s.png] 2.4 按性别计算每部电影的平均得分 可通过数据透视表(pivot_table)实现 该操作产生了另一个DataFrame...[ouo1tpjq6p.png] 2.5 过滤评分数据不够250条的电影 通过groupby()对title进行分组print("过滤评分数据不够250条的电影") ratings_by_title =...并且用unstack函数将数据转换为一个表格,每一行为电影名称,每一列为年龄组,值为该年龄组的用户对该电影的平均评分。

    5.1K11

    用Python玩转Excel | 多表联合操作

    使用Pandas则无须担心多个工作簿、多个工作表的情况,Pandas可以轻松将多个工作簿中的任意工作表读入,然后一同处理。...假设我们有三个表格,分别存放了学生的名字、学习的年龄、学生的分数三个Excel文件。并且三个表格中每一行数据都是相互对应的。现在我们想要获取年龄大于20岁且分数大于60分的学生的姓名。...下面通过Pandas实现多表联合操作,完成这个任务。...# 使用fillna方法将NaN都填充为0 tab1 = name.merge(score,how='left',on='ID').fillna(0) tab1['分数'] = tab1['分数']....# 获取满足条件的数据 result = tab2[(tab2['年龄'] >= 20) & (tab2['分数']>=60)] print(result) 上述代码中,先将不同Excel文件对应的数据读入

    92710

    Pandas图鉴(四):MultiIndex

    Pandas 给 NumPy 数组带来的两个关键特性是: 异质类型 —— 每一列都允许有自己的类型 索引 —— 提高指定列的查询速度 事实证明,这些功能足以使Pandas成为Excel和数据库的强大竞争者...MultiIndex 剖析 MultiIndex 对于没有听说过Pandas的人来说,MultiIndex最直接的用法是使用第二个索引列作为第一个索引列的补充,可以更加独特地识别每一行。...也许,建立MultiIndex的最简单的方法是如下: rename_axis 这里也有个缺点,需要在单独的一行或单独的链式方法中分配层次的名称。有几个替代的构造函数将名字和标签捆绑在一起。...,--在纯Pandas中没有直接的对应关系: pdi.insert_level(obj, pos, labels, name)用给定的值添加一个关卡(必要时适当广播),--在纯Pandas中不容易做到...; pdi.drop_level(obj, level_id)从MultiIndex中删除指定的level(向df.droplevel添加inplace参数): pdi.swap_levels(obj

    2K20

    NumPy 与 Pandas 中 axis 参数的维度与方向解析

    →shape=(m,) 每深度同一行同一列求和→shape=(m,n) 每深度同一列同一行求和→shape=(d,n) 每深度同一行同一列求和→shape=(d,m) 求平均值 mean (axis=0...)→标量 每行同一列求平均值→shape=(n,) 每列同一行求平均值→shape=(m,) 每深度同一行同一列求平均值→shape=(m,n) 每深度同一列同一行求平均值→shape=(d,n) 每深度同一行同一列求平均值...→shape=(d,m) 求最大值 max (axis=0)→标量 每行同一列求最大值→shape=(n,) 每列同一行求最大值→shape=(m,) 每深度同一行同一列求最大值→shape=(m,n)...index(行标签)的 Series(列)组成,本质上是基于 NumPy 的 ndarray 构建的。...实战示例 import pandas as pd # DataFrame示例 data = pd.DataFrame({ 'product_id': [101, 102, 101, 103,

    8910

    7 款 Python 数据图表工具的比较

    其中,路径数据的每一行对应的是两个机场之间的飞行路径;机场数据的每一行对应的是世界上的某一个机场,并且给出了相关信息;航空公司的数据的每一行给出的是每一个航空公司。 首先我们先读取数据: ?...这些数据没有列的首选项,因此我们通过赋值 column 属性来添加列的首选项。我们想要将每一列作为字符串进行读取,因为这样做可以简化后续以行 id 为匹配,对不同的数据框架进行比较的步骤。...这一行命令就确保了我们在 airline_id 这一列只含有数值型数据。 制作柱状图 现在我们理解了数据的结构,我们可以进一步地开始描点来继续探索这个问题。...我们基于airline_id把route_length_df拆分成组,为每个航空公司建立一个大体的数据框架。...上面的代码会获取airline_route_lengths中每列的名字,然后添加到name列上,这里存贮着每个航空公司的名字。我们也添加到id列上以实现查找(apply函数不传index)。

    2.9K100

    软件测试|Pandas数据分析及可视化应用实践

    Pandas是一个基于Numpy的数据分析库,它提供了多种数据统计和数据分析功能,使得数据分析人员在Python中进行数据处理变得方便快捷,接下来将使用Pandas对MovieLens 1M数据集进行相关的数据处理操作...若输入的数据集较大,可能需要读入文件的一个小片段或者按照小块来遍历文件。若要读取一小部分行数据,可以指明nrows。若是分块去读数据文件,可以指明chunksize作为每一块的行数。...图片② 根据用户id统计电影评分的均值图片3、分组聚合统计Pandas提供aggregate函数实现聚合操作,可简写为agg,可以与groupby一起使用,作用是将分组后的对象使给定的计算方法重新取值,...,不断细分数据形成多个维度累计信息的二维数据表。...matplotlib.pyplot as plt导入到程序中,注意,在jupyter notebook中需要添加一行%matplotlib notebook。

    2K30

    一文带你快速入门Python | 初识Pandas

    作者:吹牛Z 本文转自公众号:数据不吹牛 这是Python数据分析实战基础的第一篇内容,主要是和Pandas来个简单的邂逅。已经熟练掌握Pandas的同学,可以加快手速滑动浏览或者直接略过本文。...Pandas是基于Numpy的专业数据分析工具,可以灵活高效的处理各种数据集,也是我们后期分析案例的神器。...,都是基于这些表和列进行的操作(关于Pandas和Excel的形象关系,这里推荐我的好朋友张俊红写的《对比EXCEL,轻松学习Python数据分析》)。...温馨提示:使用Pandas时,尽量避免用行或者EXCEL操作单元格的思维来处理数据,要逐渐养成一种列向思维,每一列是同宗同源,处理起来是嗖嗖的快。...只需要选中访客数所在列,然后加上10000即可,pandas自动将10000和每一行数值相加,针对单个值的其他运算(减乘除)也是如此。 列之间的运算语句也非常简洁。

    1.6K01

    DataFrame和Series的使用

    ='id') 2.使用 DataFrame的loc 属性获取数据集里的一行,就会得到一个Series对象 first_row = data.loc[941] first_row 3.可以通过 index...,可以获取DataFrame的行数,列数 df.shape # 查看df的columns属性,获取DataFrame中的列名 df.columns # 查看df的dtypes属性,获取每一列的数据类型...df按行加载部分数据:先打印前5行数据 观察第一列 print(df.head()) 最左边一列是行号,也就是DataFrame的行索引 Pandas默认使用行号作为行索引。...loc方法传入行索引,来获取DataFrame的部分数据(一行,或多行) df.loc[0] df.loc[99] df.loc[last_row_index] iloc : 通过行号获取行数据 iloc...] df.iloc[[行],[列]] df.loc[:,['country','year','pop']] # 获取全部的行,但每一行的列内容接受三个 df.iloc[:,[0,2,4,-1]] df.loc

    1.3K10

    掌握这7种Python数据图表的区别,你就是大牛数据分析师!

    其中,路径数据的每一行对应的是两个机场之间的飞行路径;机场数据的每一行对应的是世界上的某一个机场,并且给出了相关信息;航空公司的数据的每一行给出的是每一个航空公司。...我们想要将每一列作为字符串进行读取,因为这样做可以简化后续以行 id 为匹配,对不同的数据框架进行比较的步骤。我们在读取数据时设置了 dtype 属性值达到这一目的。...routes =routes[routes["airline_id"] != "\\N"] 这一行命令就确保了我们在 airline_id 这一列只含有数值型数据。...我们基于airline_id把route_length_df拆分成组,为每个航空公司建立一个大体的数据框架。...大多数库基于 matplotlib 构建的并且确保一些用例更简单。

    1.8K130

    利用 Python 分析 MovieLens 1M 数据集

    每部电影的id 2.1.2 title 电影的标题 2.1.3 genres 电影的类别(详细分类见readme.txt) 3 ratings.csv 文件里面的内容包含了每一个用户对于每一部电影的评分...电影ID在ratings.csv,tags.csv,movies.csv和links.csv之间是一致的. 2 Python 数据处理 2.1 转化DataFrame对象 通过[pandas.read_csv...]将各表转化为pandas 的DataFrame对象 # 用户信息 unames = ['user_id', 'gender', 'age', 'occupation', 'zip'] users =...,使用基于标签的索引.loc或基于位置的索引.iloc 2.4 按性别计算每部电影的平均得分 可通过数据透视表(pivot_table)实现 该操作产生了另一个DataFrame,输出内容为rating...并且用unstack函数将数据转换为一个表格,每一行为电影名称,每一列为年龄组,值为该年龄组的用户对该电影的平均评分。

    2.1K30

    从零构建大模型之Transformer公式解读

    在注意力计算过程中,对输入序列应用一个掩模,将未来标记的注意力分数设置为负无穷大。这有效地防止了模型在生成当前令牌时考虑未来令牌,确保每个令牌仅基于过去令牌和编码的输入序列生成。...输入序列中的每个单词首先使用 W_Q、 W_K 和 W_V 的学习权重矩阵投影到这三个矩阵中: 这里,X 是输入序列矩阵,其中每一行对应一个单词嵌入。...Q 中的每一行表示序列中每个单词的查询向量。 K 是从 XW_K 得到的键矩阵。K 中的每一行表示序列中每个单词的关键向量。 K ^ T 是键矩阵的转置。...Transformer不使用单一的注意力分数,而是使用多头注意力分数。这意味着输入序列被分成多个较小的部分,每个部分通过上述注意力机制独立处理, 每一部分都叫做头。...为了帮助模型理解序列中每个单词的位置,我们向这些嵌入添加位置编码,结果是 X_pos: 接下来,这个组合序列通过多头注意力机制提供。

    10.2K20
    领券