
正文
agg函数python again函数python
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
利用 Python 分析 MovieLens 1M 数据集
MovieLens数据集是一个关于电影评分的数据集,里面包含了从IMDB, The Movie DataBase上面得到的用户对电影的评分信息,详细请看下面的介绍。
文件里面的内容是帮助你如何通过网站id在对应网站上找到对应的电影链接的。
movieId, imdbId, tmdbId
表示这部电影在movielens上的id,可以通过链接 来得到。
表示这部电影在imdb上的id,可以通过链接
来得到。
movieId, title, genres
文件里包含了一部电影的id和标题,以及该电影的类别
movieId, title, genres
每部电影的id
电影的标题
电影的类别(详细分类见readme.txt)
文件里面的内容包含了每一个用户对于每一部电影的评分。
数据排序的顺序按照userId,movieId排列的。
文件里面的内容包含了每一个用户对于每一个电影的分类
数据排序的顺序按照userId,movieId排列的。
=======
该数据集(ml-latest-small)描述了电影推荐服务[MovieLens]( )的5星评级和自由文本标记活动。它包含9742部电影的100836个评级和3683个标签应用程序。这些数据由610位用户在1996年3月29日到2018年9月24日之间创建。该数据集于2018年9月26日生成。
随机选择用户以包含在内。所有选定的用户评分至少20部电影。不包括人口统计信息。每个用户都由一个id表示,并且不提供其他信息。
数据包含在 links.csv , movies.csv , ratings.csv 和 tags.csv 文件中。有关所有这些文件的内容和用法的更多详细信息如下。
这是一个发展的数据集。因此,它可能会随着时间的推移而发生变化,并不是共享研究结果的适当数据集。
========
要确认在出版物中使用数据集,请引用以下文件:
========================
数据集文件以[逗号分隔值]文件写入,并带有单个标题行。包含逗号( , )的列使用双引号(```)进行转义。这些文件编码为UTF-8。如果电影标题或标签值中的重音字符(例如Misérables,Les(1995))显示不正确,确保读取数据的任何程序(如文本编辑器,终端或脚本)都配置为UTF-8。
MovieLens用户随机选择包含。他们的ID已经匿名化了。用户ID在 ratings.csv 和 tags.csv 之间是一致的(即,相同的id指的是两个文件中的同一用户)。
数据集中仅包含至少具有一个评级或标记的电影。这些电影ID与MovieLens网站上使用的电影ID一致(例如,id 1 对应于URL )。电影ID在 ratings.csv , tags.csv , movies.csv 和 links.csv 之间是一致的.
通过[pandas.read_csv]将各表转化为pandas 的DataFrame对象
其中用到的参数为分隔符sep、头文件header、列名定义names、解析器引擎engine
这里和书上相比多用了engine参数,engine参数有C和Python,C引擎速度更快,而Python引擎目前功能更完整。
可用pandas.merge 将所有数据都合并到一个表中。merge有四种连接方式(默认为inner),分别为
通过索引器查看第一行数据,使用基于标签的索引.loc或基于位置的索引.iloc
可通过数据透视表( pivot_table )实现
该操作产生了另一个DataFrame,输出内容为rating列的数据,行标index为电影名称,列标为性别,aggfunc参数为函数或函数列表(默认为numpy.mean),其中“columns”提供了一种额外的方法来分割数据。
by参数的作用是针对特定的列进行排序(不能对行使用),ascending的作用是确定排序方式,默认为升序
增加一列存放平均得分之差,并对其排序,得到分歧最大且女性观众更喜欢的电影
按照电影标题将数据集分为不同的groups,并且用size( )函数得到每部电影的个数(即每部电影被评论的次数),按照从大到小排序,取最大的前20部电影列出如下
按照电影名称分组,用agg函数通过一个字典{‘rating’: [np.size, np.mean]}来按照key即rating这一列聚合,查看每一部电影被评论过的次数和被打的平均分。取出至少被评论过100次的电影按照平均评分从大到小排序,取最大的10部电影。
相关问答
Q1: python--pandas分组聚合
groupby 方法是pandas中的分组方法agg函数python,对数据框采用 groupby 方法后agg函数python,返回的是 DataFrameGroupBy 对象,一般分组操作后会进行聚合操作。
对数据框按 A 列进行分组,产生分组数据框。分组数据框是可迭代对象,可以进行循环遍历,可以看出在循环中,每个元素的类型是元组,
元组的第一个元素是分组值,第二个元素是对应的分组数据框。
可以对分组后的数据框直接使用聚合方法 agg ,对分组数据框的每一列计算统计函数值。
可以根据数据框外的序列数据对数据框进行分组,需要注意 序列长度需要与数据框行数相同 。
可以根据数据框的多列对数据框进行分组。
根据 A , B 列进行分组,然后求和。
可以根据索引对数据框进行分组,需要设置 level 参数。
数据框只有一层索引,设置参数 level=0 。
当数据框索引有多层时,也可以根据需求设置 level 参数,完成分组聚合。
设置 level 参数,如需要根据第一层索引,即 id1 进行分组,可以设置 level=0 或 level='id1' 完成分组聚合。
分组后一般会进行聚合操作,用 agg 方法进行聚合。
对分组后数据框使用单个函数进行聚合,单个聚合函数会对每列进行计算,然后合并返回。聚合函数以字符串的形式传入。
可以对分组后的数据指定列进行分组聚合。需要注意 子列需要用[]包裹 。
聚合函数也可以传入自定义的匿名函数。
聚合函数可以是多个函数。聚合时,多个聚合函数会对每列进行计算,然后合并返回。聚合函数以列表的形式传入。
聚合返回后的数据列名有两层索引,第一层是聚合的列名,第二层是使用的聚合函数名。如果需要对返回的聚合函数名重命名,
需要在传参时,传入元组,第一个元素为聚合函数名,第二个元素为聚合函数。
同样,也可以传入匿名函数。
如果需要对不同的列进行不同的聚合计算,则需要传入字典的形式。
可以重命名聚合后的列名,注意 只能对一列传入一个聚合函数时有效 。
Q2: pandas agg函数使用方法
DataFrame.agg( func agg函数python, axis = 0 agg函数python, * args , ** kwargs )
func : 函数,函数名称,函数列表,字典{‘行名/列名’,‘函数名’}
使用指定轴上的一个或多个操作进行聚合。
agg是一个聚合函数,聚合函数操作始终是在轴(默认是列轴,也可设置行轴)上执行,不同于 numpy聚合函数 (np.sum() //求和;np.prod() //所有元素相乘;np.mean() //平均值;np.std() //标准差;np.var() //方差;np.median() //中数;np.power() //幂运算;np.sqrt() //开方;np.min() //最小值;np.max() //最大值;np.argmin() //最小值的下标;np.argmax() //最大值的下标;np.inf //无穷大;np.exp(10) //以e为底的指数;np.log(10) //对数)
下面示例展示agg具体用法:
定义一个列表值:
在行上聚合这些函数
col1 col2 col3 col4
max 1111.0 2222.0 3333.0 4444.0
min 1.0 2.0 3.0 4.0
mean 308.5 617.0 925.5 1234.0
每列不同的聚合
col1 col2 col3
max NaN 2222.0 NaN
min 1.0 2.0 3 .0
sum 1234.0 NaN 3702.0
注:当某列没有其他聚合函数时,则用NaN填充。
好啦,就到这里了,谢谢
Q3: Python分组
前言分组原理
核心:
1.不论分组键是数组、列表、字典、Series、函数,只要其与待分组变量的轴长度一致都可以传入groupby进行分组。
2.默认axis=0按行分组,可指定axis=1对列分组。
对数据进行分组操作的过程可以概括为:split-apply-combine三步:
1.按照键值(key)或者分组变量将数据分组。
2.对于每组应用我们的函数,这一步非常灵活,可以是python自带函数,可以是我们自己编写的函数。
3.将函数计算后的结果聚合。
1 分组模式及其对象
1.1 分组的一般模式
三个要素:分组依据、数据来源、操作及其返回结果
df.groupby(分组依据)[数据来源].使用操作
1.2 分组依据的本质
1.3Groupby 对象
通过 ngroups 属性,可以访问分为了多少组:
通过 groups 属性,可以返回从 组名映射到 组索引列表的字典:
当 size 作为 DataFrame 的属性时,返回的是表长乘以表宽的大小,但在 groupby 对象上表示统计每个组的 元素个数:
通过 get_group 方法可以直接获取所在组对应的行,此时必须知道组的具体名字:
1.4 分组的三大操作
分组的三大操作:聚合、变换和过滤
2.聚合函数
2.1内置聚合函数
包括如下函数: max/min/mean/median/count/all/any/idxmax/idxmin/mad/nunique/skew/quantile/sum/std/var/sem/size/prod
2.2agg 方法
【a】使用多个函数
当使用多个聚合函数时,需要用列表的形式把内置聚合函数的对应的字符串传入,先前提到的所有字符串都是合法的。
【b】对特定的列使用特定的聚合函数
对于方法和列的特殊对应,可以通过构造字典传入 agg 中实现,其中字典以列名为键,以聚合字符串或字符串列表为值。
【c】使用自定义函数
在 agg 中可以使用具体的自定义函数,需要注意传入函数的参数是之前数据源中的列,逐列进行计算
【d】聚合结果重命名 如果想要对结果进行重命名,只需要将上述函数的位置改写成元组,元组的第一个元素为新的名字,第二个位置为原来的函数,包括聚合字符串和自定义函数
3 变换和过滤
3.1 变换函数与 transform 方法
变 换 函 数 的 返 回 值 为 同 长 度 的 序 列, 最 常 用 的 内 置 变 换 函 数 是 累 计 函 数:cum- count/cumsum/cumprod/cummax/cummin ,它们的使用方式和聚合函数类似,只不过完成的是组内 累计操作。
3.2 组索引与过滤
过滤在分组中是对于组的过滤,而索引是对于行的过滤
组过滤作为行过滤的推广,指的是如果对一个组的全体所在行进行统计的结果返回 True 则会被保留,False 则该组会被过滤,最后把所有未被过滤的组其对应的所在行拼接起来作为 DataFrame 返回。
在 groupby 对象中,定义了 filter 方法进行组的筛选,其中自定义函数的输入参数为数据源构成的 DataFrame 本身,在之前例子中定义的 groupby 对象中,传入的就是 df[['Height', 'Weight']] ,因此所有表方法和属性 都可以在自定义函数中相应地使用,同时只需保证自定义函数的返回为布尔值即可。
4 跨列分组
4.1 apply 的引入
4.2 apply 的使用
在设计上,apply 的自定义函数传入参数与 filter 完全一致,只不过后者只允许返回布尔值
【a】标量情况:结果得到的是 Series ,索引与 agg 的结果一致
【b】Series 情况:得到的是 DataFrame ,行索引与标量情况一致,列索引为 Series 的索引
【c】DataFrame 情况:得到的是 DataFrame ,行索引最内层在每个组原先 agg 的结果索引上,再加一层返 回的 DataFrame 行索引,同时分组结果 DataFrame 的列索引和返回的 DataFrame 列索引一致
agg函数python的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于again函数python、agg函数python的信息别忘了在本站进行查找喔。







