我有一个类似的 df
Code Country CID New_Country
123 Aus C11 Europe
123 Aus C12 India
456 Europe C98 US
456 Europe C123 US
456 Europe C43 Europe
112 US C345 China
我想要这样的结果 df:
Code Country Merged_Column
123 Aus C11,Europe;C12,India
456 Europe C98,US;C123,US;C43,Europe
112 US C345,China
问题陈述
我想要基于多列(Code
和 Country
)合并行,并想要合并两列(CID
和 新_国家
)
我的代码:
df=df.groupby(['Code','Country'])['CID'].apply(', '.join).reset_index()
上面的代码适用于一列,但需要帮助合并两列,如结果 df 所示
最佳答案
您可以使用:
series.str.cat
用于连接 2 列,然后 assign
+groupby()
df.assign(Merged_Column=df['CID'].str.cat(df['Country'],sep=',')).groupby(
['Code','Country'],sort=False,as_index=False)['Merged_Column'].agg(';'.join)
或者:
df.agg()
在 axis=1
上使用 .join
对于多个列,步骤与上述相同
df.assign(Merged_Column=df[['CID','New_Country']].agg(','.join,1)).groupby(
['Code','Country'],sort=False,as_index=False)['Merged_Column'].agg(';'.join)
Code Country Merged_Column
0 123 Aus C11,Europe;C12,India
1 456 Europe C98,US;C123,US;C43,Europe
2 112 US C345,China
关于python-3.x - 基于多列合并行并连接多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59487001/