gpt4 book ai didi

python - Groupby 包含重复项但也保留重复信息的列

转载 作者:太空宇宙 更新时间:2023-11-04 02:05:48 24 4
gpt4 key购买 nike

我有以下数据框:

 df=pd.DataFrame({'id':['A','A','B','C','D'],'Name':['apple','apricot','banana','orange','citrus'], 'count':[2,3,6,5,12]})

id Name count
0 A apple 2
1 A apricot 3
2 B banana 6
3 C orange 5
4 D citrus 12

我正在尝试按“id”列对数据框进行分组,但还将重复的名称保留为单独的列。以下是预期的输出:

    id   sum(count)  id1      id2
0 A 5 apple apricot
1 B 6 banana na
2 C 5 orange na
3 D 12 citrus na

我尝试使用以下语句按 id 列进行分组,但这完全删除了 name 列。

df.groupby(['id'], as_index=False).sum() 

如果有任何建议/帮助,我将不胜感激。

最佳答案

您可以使用 DataFrame.pivot_table为此:

g = df.groupby('id')
# Generate the new columns of the pivoted dataframe
col = g.Name.cumcount()
# Sum of count grouped by id
sum_count = g['count'].sum()

(df.pivot_table(values='Name', index='id', columns = col, aggfunc='first')
.add_prefix('id')
.assign(sum_count = sum_count))

id0 id1 sum_count
id
A apple apricot 5
B banana NaN 6
C orange NaN 5
D citrus NaN 12

关于python - Groupby 包含重复项但也保留重复信息的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54753710/

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