python dataframe group by_Python DataFrame.groupby()聚合函数,分组级运算

pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据集进行切片、切块、摘要等操作。根据一个或多个键(可以是函数、数组或DataFrame列名)拆分pandas对象。计算分组摘要统计,如计数、平均值、标准差,或用户自定义函数。对DataFrame的列应用各种各样的函数。应用组内转换或其他运算,如规格化、线性回归、排名或选取子集等。计算透视表或交叉表。执行分位数分析以及其他分组分析。

groupby分组函数:

返回值:返回重构格式的DataFrame,特别注意,groupby里面的字段内的数据重构后都会变成索引

groupby(),一般和sum()、mean()一起使用,如下例:

先自定义生成数组

import pandas as pd

df = pd.DataFrame({'key1':list('ababa'),

'key2': ['one','two','one','two','one'],

'data1': np.random.randn(5),

'data2': np.random.randn(5)})

print(df)

data1 data2 key1 key2

0 -1.313101 -0.453361 a one

1 0.791463 1.096693 b two

2 0.462611 1.150597 a one

3 -0.216121 1.381333 b two

4 0.077367 -0.282876 a one

应用groupby,分组键均为Series(譬如df[‘xx']),实际上分组键可以是任何长度适当的数组

#将df['data1']按照分组键为df['key1']进行分组

grouped=df['data1'].groupby(df['key1'])

print(grouped.mean())

key1

a -0.257707

b 0.287671

Name: data1, dtype: float64

states=np.array(['Ohio','California','California','Ohio','Ohio'])

years=np.array([2005,2005,2006,2005,2006])

#states第一层索引,years第二层分层索引

print(df['data1'].groupby([states,years]).mean())

California 2005 0.791463

2006 0.462611

Ohio 2005 -0.764611

2006 0.077367

Name: data1, dtype: float64

#df根据‘key1'分组,然后对df剩余数值型的数据运算

df.groupby('key1').mean()

data1 data2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值