gpt4 book ai didi

python - 使用 groupby 在 Pandas DataFrame 上进行计算,然后将其传回 DataFrame?

转载 作者:太空宇宙 更新时间:2023-11-04 03:09:21 25 4
gpt4 key购买 nike

我有一个数据框,我想按两个变量对其进行分组,然后在这些变量内执行计算。有什么简单的方法可以做到这一点,并在我完成后将信息放回 DataFrame 中,即像这样:

df=pd.DataFrame({'A':[1,1,1,2,2,2,30,12,122,345],
'B':[1,1,1,2,3,3,3,2,3,4],
'C':[101,230,12,122,345,23,943,83,923,10]})

total = []
avg = []
AID = []
BID = []
for name, group in df.groupby(['A', 'B']):
total.append(group.C.sum())
avg.append(group.C.sum()/group.C.nunique())
AID.append(name[0])
BID.append(name[1])

x = pd.DataFrame({'total':total,'avg':avg,'AID':AID,'BID':BID})

但显然效率更高?

最佳答案

可以在groupby之后使用pandas聚合函数:

import pandas as pd
import numpy as np
df.groupby(['A', 'B'])['C'].agg({'total': np.sum, 'avg': np.mean}).reset_index()

# A B total avg
# 0 1 1 343 114.333333
# 1 2 2 122 122.000000
# 2 2 3 368 184.000000
# 3 12 2 83 83.000000
# 4 30 3 943 943.000000
# 5 122 3 923 923.000000
# 6 345 4 10 10.000000

关于python - 使用 groupby 在 Pandas DataFrame 上进行计算,然后将其传回 DataFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38575673/

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