gpt4 book ai didi

python - 如何更改 python 3 pandas.DataFrame 的表形式?

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

我有一个按特定列计数和分组的 Pandas 数据框。

import pandas as pd
df = pd.DataFrame({'x':list('aaabbbbbccccc'),'y':list('2225555577777'), 'z':list('1312223224432')})
#
df.groupby(['x','y','z'])['z'].count()
# or
df.groupby(['x','y','z'])['z'].agg(['count'])
# or
df.groupby(['x','y','z'])['z'].count().reset_index(name='counts')

结果是;

   x  y  z  counts
0 a 2 1 2
1 a 2 3 1
2 b 5 2 4
3 b 5 3 1
4 c 7 2 2
5 c 7 3 1
6 c 7 4 2

如何将结果转换为以下形式?

   x  y 1 2 3 4
0 a 2 2 0 1 0
1 b 5 0 4 1 0
2 c 7 0 2 1 2

最佳答案

您将需要使用unstack + reset_index:

(df.groupby(['x','y','z'])['z']
.count()
.unstack(-1, fill_value=0)
.reset_index()
.rename_axis(None, axis=1)
)

x y 1 2 3 4
0 a 2 2 0 1 0
1 b 5 0 4 1 0
2 c 7 0 2 1 2

请注意,您可以将 df.groupby(['x','y','z'])['z'].count() 替换为 df.groupby( ['x','y','z']).size() 为了紧凑,但要注意 size 也会计算 NaN。

关于python - 如何更改 python 3 pandas.DataFrame 的表形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49434019/

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