"one" 数据框中相同列名的连接值

Concat values from same column name in "one" dataframe

我想连接具有相同列的值。

我发现了一些来自不同数据框的解决方案,但不是来自一个数据框。 另外,我尝试将列分离到单个数据框然后连接,但它似乎不起作用,因为列的名称显示不同。 (例如显示“apple”、“banana”、“pizza”、“apple.1”、“banana.1”...)

这样显示有什么解决办法吗?谢谢!

您可以使用 melt 展平您的数据框,然后 pivot 将其重塑为原始形状:

df.columns = df.columns.str.rsplit('.').str[0]

out = df.melt().assign(index=lambda x: x.groupby('variable').cumcount()) \
        .pivot_table('value', 'index', 'variable', fill_value=0) \
        .rename_axis(index=None, columns=None)[df.columns.unique()]

print(out)

# Output
   apple  banana  pizza
0      1       4      4
1      2       3      7
2      3       2      3
3      5       0      1
4      8       0      5
5      9       0     34