gpt4 book ai didi

python - 如何将重复项合并为新列

转载 作者:行者123 更新时间:2023-11-28 22:08:49 25 4
gpt4 key购买 nike

我正在尝试合并到 1 列上的数据帧,我希望重复项的输出是一个额外的列而不是新行。

现在发生了什么:

df1 = pd.DataFrame({'A': ['A0'],
'B': ['B0']})

df2 = pd.DataFrame({'A': ['A0', 'A0'],
'C': ['C4', 'C5']})

df1.merge(df2, on = 'A', how = 'left')

给出输出:

    A   B   C
0 A0 B0 C4
1 A0 B0 C5

我希望输出是什么:

    A   B   C_1   C_2
0 A0 B0 C4 C5

谢谢!

最佳答案

通过 MultiIndexdf2 中创建列 A 的唯一值 DataFrame.set_index带计数器列 GroupBy.cumcount , 通过 Series.unstack reshape 并通过 mapjoin::

展平 Multiindex
df2 = df2.set_index(['A', df2.groupby('A').cumcount().add(1).astype(str)]).unstack()
df2.columns = df2.columns.map('_'.join)
df2 = df2.reset_index()
print (df2)
A C_1 C_2
0 A0 C4 C5

df = df1.merge(df2, on = 'A', how = 'left')
print (df)
A B C_1 C_2
0 A0 B0 C4 C5

关于python - 如何将重复项合并为新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58131261/

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