微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Python Pandas中查找ID的最小值,最大值和平均值

我在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] 举报,一经查实,本站将立刻删除。

相关推荐