gpt4 book ai didi

python - 对行进行分组并计算平均值和计数

转载 作者:太空宇宙 更新时间:2023-11-04 07:33:42 26 4
gpt4 key购买 nike

这是我的数据框:

df = 
UD QTY GRADE TIME_1 TIME_2
1 20 5 22.5 16.1
1 20 5 26.2 19.5
1 20 5 30.0 14.0
1 20 4 20.0 18.5
2 25 4 23.3 19.9

我需要计算每个 UDQTY 组合的 TIME_1TIME_2 的平均值。然后我想添加新列 GRADE_COUNT 来存储每组的总行数。例如,在上面给出的数据集中,每组有 4 行,定义为 UD = 1 和 QTY = 20。

结果应该是这样的:

df = 

UD QTY MEAN_TIME_1 MEAN_TIME_2 COUNT
1 20 24.67 17.02 4
2 25 23.3 19.9 1

我编写了这段代码,用于对行进行分组、计算平均值和计算值。

groupby_object = df[['UD', 'QTY', 'GRADE', 'TIME_1', 'TIME_2']].groupby(['TIME_1', 'TIME_2])

df = groupby_object.agg('mean').rename(columns = lambda x: x + ' mean').join(pd.DataFrame(groupby_object.size(),columns=['counts'])).reset_index()

但它不是计算平均时间,而是计算平均 QTYGRADEUD 列也消失了。

最佳答案

可以在同一步骤中执行所有不同类型的聚合,而无需合并或分配。 groupby.agg 允许您使用映射到所用聚合函数的列字典来执行此操作

df1 = df.groupby(['UD', 'QTY']).agg({'TIME_1': 'mean', 
'TIME_2': 'mean',
'GRADE':'count'}).reset_index()

UD QTY TIME_1 GRADE TIME_2
0 1 20 24.675 4 17.025
1 2 25 23.300 1 19.900

关于python - 对行进行分组并计算平均值和计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41473887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com