gpt4 book ai didi

python - pandas groupby 两列并从第二列生成列

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

我有一个像这样的 Pandas 数据框:

index col1   col2   col3   col4   col5
0 a c 1 2 f
1 a c 1 2 f
2 a d 1 2 f
3 b d 1 2 g
4 b e 1 2 g
5 b e 1 2 g

如果我按两列分组,如下所示:

df.groupby(['col1', 'col2']).agg({'col3':'sum','col4':'sum'})

我得到:

           col3  col4
col1 col2
a c 2 4
d 1 2
b d 1 2
e 2 4

是否可以将其转换为:

col1 c_col3 d_col3 c_col4 d_col4 e_col3 e_col4
a 2 1 4 2 Nan Nan
b Nan 1 Nan 2 2 4

以一种高效的方式,其中 col1 是索引?

最佳答案

添加unstack对于列中的 MultiIndex,因此需要展平:

df1 = df.groupby(['col1', 'col2']).agg({'col3':'sum','col4':'sum'}).unstack()
#python 3.6+
df1.columns = [f'{j}_{i}' for i, j in df1.columns]
#python bellow
#df1.columns = ['{}_{}'.format(j, i) for i, j in df1.columns]
print (df1)
c_col3 d_col3 e_col3 c_col4 d_col4 e_col4
col1
a 2.0 1.0 NaN 4.0 2.0 NaN
b NaN 1.0 2.0 NaN 2.0 4.0

关于python - pandas groupby 两列并从第二列生成列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53664584/

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