python - groupby后如何获取组大小的统计信息?
问题描述
我有这个数据框:
ID Code Timestamp Value
1 AAA 12345 11
1 AAB 12346 12
2 AAC 12345 1
2 AAC 12347 11
2 AAD 12348 1
3 ABC 12345 2
3 BBB 12448 1
3 BBB 12449 1
3 AAD 12450 2
3 AAE 12450 1
4 BBD 12346 1
ID 1 和 2 属于一组,而 ID 3 和 4 属于另一组。我想获得每个组的行大小的平均值、最小值和最大值。
例如,具有 1 和 2 的组的平均值、最小值和最大值为:2.5、2、3。具有 3 和 4 的组的平均值、最小值和最大值为:3、1、5。
我试图做的是
def partition():
if id in [1, 2]:
return "Group A"
else:
return "Group B"
groupedDf = dataframe.groupby([partition, 'id'])
print(groupedDf.size())
#print it will give me
Group A ID
1 2
2 3
Group B ID
3 5
4 1
但我找不到如上所述的优雅或熊猫方式来查找均值、最小值和最大值。我现在能想到的只是经典的迭代方式,比如:
for (key, group) in groupedDf
#do heavy lifting calculation here to get what I want.
希望问题足够详细,有人可以帮助我。
解决方案
df['Group'] = np.where(df['ID'].isin([1, 2]), 'A', 'B')
df2 = df.groupby(['Group','ID']).size()
df2.groupby('Group').agg(['mean', 'min', 'max'])
这是我得到的:
mean min max
Group
A 2.5 2 3
B 3.0 1 5
推荐阅读
- python - 将 200K+ txt 文件中的数据解析/提取到 Excel
- javascript - 如何选择尚未创建的元素?
- stata - 如何在 esttab 中组合各种 estpost 集
- c - 使用fork在c中创建n个子进程
- android - 安卓控制的树莓车
- c# - 使 AR 目标对象始终直立并围绕 worldUp 矢量旋转
- sql - 日期行到星期几列
- rsync - rsync:如何忽略被锁定的远程文件 - 设备或资源繁忙(16)
- qooxdoo - qx.ui.core.scroll.AbstractScrollArea 子项在滚动条出现时缩小
- django - 我可以编写一个循环来用聚合值填充字典以创建我的表吗