我在Python Pandas中有两个Dataframe.假设第一个是df1. id列没有必要排序.
id B C
0 1 5 1
1 1 5 1
2 1 6 1
3 1 7 1
4 2 5 1
5 2 6 1
6 2 6 1
7 3 7 1
8 3 7 1
9 4 6 1
10 4 7 1
11 4 7 1
然后第二个数据帧df2具有一个具有唯一ID值的列
id
0 1
1 2
2 3
3 4
我想计算每个id的B列的最小值,最大值和平均值,并将其添加到第二个数据帧.结果将是这样的:
id min max avg
0 1 5 7 5.75
1 2 ..
2 3 ..
3 4 ..
在这个例子中,我能够通过为每个id手册计算它们来复制它.这不是问题,因为该示例只有4个ID.但我的真实例子有超过1000个ID.有没有自动方法呢?
解决方法:
对组使用agg功能
In [96]: df.groupby('id')['B'].agg([pd.np.min, pd.np.max, pd.np.mean])
Out[96]:
amin amax mean
id
1 5 7 5.750000
2 5 6 5.666667
3 7 7 7.000000
4 6 7 6.666667
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。