gpt4 book ai didi

python - 扩 Pandas 数据框

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

我有这样的数据:

Box,Code
Green,1221
Green,8391
Red,3709
Red,2911
Blue,9820
Blue,4530

使用 pandas 数据框,我想知道是否可以输出如下内容:

Box,Code1,Code2
Green,1221,8391
Red,3709,2911
Blue,9820,4530

我的数据每个“框”的行数始终相同。

我一直在 pandas 中试验数据透视表和交叉表(以及堆叠和取消堆叠),但没有找到任何能让我得到我正在寻找的“扩展”结果的东西。

最佳答案

您可以使用 groupby对于 listDataFrame 构造函数:

a = df.groupby('Box')['Code'].apply(list)
df = pd.DataFrame(a.values.tolist(), index=a.index).add_prefix('Code').reset_index()
print (df)
Box Code0 Code1
0 Blue 9820 4530
1 Green 1221 8391
2 Red 3709 2911

cumcount对于带有 pandas.pivot 的新 Series :

g = df.groupby('Box').cumcount()
df = pd.pivot(index=df['Box'], columns=g, values=df['Code']).add_prefix('Code').reset_index()
print (df)
Box Code0 Code1
0 Blue 9820 4530
1 Green 1221 8391
2 Red 3709 2911

unstack 类似的解决方案:

df['g'] = df.groupby('Box').cumcount()
df = df.set_index(['Box', 'g'])['Code'].unstack().add_prefix('Code').reset_index()
print (df)
g Box Code0 Code1
0 Blue 9820 4530
1 Green 1221 8391
2 Red 3709 2911

关于python - 扩 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45612552/

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