gpt4 book ai didi

python - 拆分汇总数据并重新汇总

转载 作者:太空狗 更新时间:2023-10-30 01:24:38 25 4
gpt4 key购买 nike

我有一个如下所示的摘要 df:

Apples             100
Bananas 34
Kumquats 54
Greengages 101
Apples;Kumquats 5
Bananas;Greengages 7

我想通过将组合水果的计数拆分为单个项目来简化它:

Apples             105
Bananas 41
Kumquats 59
Greengages 108

即我删除了像 Apples;Kumquats 这样的行,但将 ApplesKumquats 都增加了 5

有没有在 Pandas 中执行此操作的好方法?

最佳答案

您可以通过;拆分值,通过stack reshape 和聚合sum:

print (df)
a b
0 Apples 100
1 Bananas 34
2 Kumquats 54
3 Greengages 101
4 Apples;Kumquats 5
5 Bananas;Greengages 7

df1 = (df.set_index('b')['a']
.str.split(';', expand=True)
.stack()
.reset_index(name='c')
.groupby('c', as_index=False)['b'].sum())
print (df1)
c b
0 Apples 105
1 Bananas 41
2 Greengages 108
3 Kumquats 59

或者使用 defaultdict 的解决方案:

from collections import defaultdict

d = defaultdict(int)
for a, b in zip(df['a'], df['b']):
for x in a.split(';'):
d[x] += b

df = pd.DataFrame({'a':list(d.keys()), 'b':list(d.values())})
print (df)
a b
0 Apples 105
1 Bananas 41
2 Kumquats 59
3 Greengages 108

关于python - 拆分汇总数据并重新汇总,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56752783/

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