gpt4 book ai didi

python - 在 Pandas 中对多索引数据帧进行分组和求和

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

我有一个这样的数据框。

df1=pd.DataFrame({"A":np.random.randint(1,10,4),"B":np.random.randint(1,10,4),"C":list('abba')})
df1.index.name="first"
df2=pd.DataFrame({"A":np.random.randint(1,10,5),"B":np.random.randint(1,10,5),"C":list('aaabb')})
df2.index.name="second"
df=pd.concat([df1,df2], keys=['first', 'second'])
df
A B C
first 0 6 5 a
1 2 2 b
2 1 6 b
3 6 9 a
second 0 6 6 a
1 9 9 a
2 8 4 a
3 7 2 b
4 9 8 b

我想得到这样的分组和求和结果。(键=列“C”)

    first        second
A B A B
a 15 14 23 19
b 3 8 16 10

我怎样才能得到这个结果?

最佳答案

您可以将 groupby 与看起来像数组的事物列表一起使用。您想要使用第一级索引和列 'C'

df.groupby([df.index.get_level_values(0), df.C]).sum() \
.unstack().stack(0).T.rename_axis(None)

enter image description here

关于python - 在 Pandas 中对多索引数据帧进行分组和求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39313103/

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