gpt4 book ai didi

python - 如何转换数据框以便列值是行值

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

我有以下数据框,如下所示:

df = pd.DataFrame({'fruit': ['berries','berries', 'berries', 'tropical', 
'tropical','tropical','berries','nuts'],
'code': [100,100,100,200,200, 300,400,500],
'subcode': ['100A', '100B', '100C','200A', '200B','300A',
'400A', '500A']})


code fruit subcode
0 100 berries 100A
1 100 berries 100B
2 100 berries 100C
3 200 tropica 200A
4 200 tropical 200B
5 300 tropical 300A
6 400 berries 400A
7 500 nuts 500A

我想将数据框转换为这种格式:

    code    fruit   subcode1 subcode1 subcode1
0 100 berries 100A 100B 100C
3 200 tropica 200A 200B
5 300 tropical 300A
6 400 berries 400A
7 500 nuts 500A

不幸的是,我不知道如何继续。我咨询过像Unmelt Pandas DataFrame这样的帖子, 并具有堆栈和取消堆栈的组合。我怀疑也涉及一些串联。如果有任何建议可以帮助我指明正确的方向,我将不胜感激!

最佳答案

您可以使用groupby,获取值并将它们转换为系列。

df.groupby(['code','fruit'])['subcode'].apply(
lambda x: x.values
).apply(pd.Series)
.add_prefix('subcode_')

subcode_0 subcode_1 subcode_2
code fruit
100 berries 100A 100B 100C
200 tropical 200A 200B NaN
300 tropical 300A NaN NaN
400 berries 400A NaN NaN
500 nuts 500A NaN NaN

关于python - 如何转换数据框以便列值是行值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50992472/

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