groupby,agg,cut,merge,apply用法笔记

转载:https://www.cnblogs.com/sss423/p/7496461.html

GroupBy针对DataFrame将其按照某个准则分组

1.常见的调用形式为:

df['a'].GroupyBy(df['b'])

df.GroupyBy(df['b','c'])#层次化的索引

df.GroupyBy(['b','c'])#直接将columns名称作为索引键进行索引

以上可理解为将Series作为分组键,y此外还可以将任何适当长度的array作为分组键,目前未尝试过

2.常用的方法:

df.GroupyBy(df['b']).mean()#非数值列数据直接跳过
df.GroupyBy(df['b']).size()#返回一个分组的大小的Series(每个值对应的是当前键元素的个数)

df.GroupyBy(df['b']).std()

3.举例GroupyBy的应用:

如给出的csv文件中columns包含['City','State','Population'],让求出每个州所有城市人口的平均值,此时就可以用

df['population'].GroupBy(['State']).mean()

 

注:GroupyBy函数说明在http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.groupby.html#pandas.DataFrame.groupby

 agg用于聚合运算

1.agg的函数如其名为聚合作用,他接在被groupby函数后的类型使用。

扫描二维码关注公众号,回复: 1950738 查看本文章

2.几种常见的用法为

复制代码
#求自己定义的函数
df.groupby(['a']).agg(func)#这个函数是我自己定义过的
#同理也可
df.groupby(['a']).agg(‘mean’)
#同时求几个函数
df.groupby(['a']).agg(['min','max',func])

#以上为常用情况
#如果想换聚合函数的标题
df.groupby([('foo',yongbut'mean'),('bar',func)])
#如果想对不同的列用不同的聚合方式
df.groupby(['a']).agg({'a':'sum','b':['min','max','std']})
复制代码

函数说明:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.groupby.DataFrameGroupBy.agg.html

 Apply函数-可针对DataFrame和Series操作,返回是DataFrame和Series

1.理解:apply将他应用的对象拆分到小一级,然后让拆分后的每个子部分去实施apply括号内的函数操作,再把操作后的结果合在一起

2.apply可以说是非常常用,这里只说一个基本的用例,连带理解了lambda的用法

energy['Energy Supply']=energy['Energy Supply'].apply(lambda x : x*1000000)

 

注:Apply函数说明 http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.apply.html#pandas.DataFrame.apply

猜你喜欢

转载自blog.csdn.net/m0_37870649/article/details/80949183
今日推荐