我正在寻找使用分隔符连接具有相同名称的列的最快方法。
我的数据框:

df1:
A,B,C,D
my,he,she,it

df2:
A,B,C,D
dog,cat,elephant,fish

预期输出:
df:
A,B,C,D
my:dog,he:cat,she:elephant,it:fish

如您所见,我想合并具有相同名称的列,一个合并两个单元格。
我可以将此代码用于A列:
df=df1.merge(df2)
df['A'] = df[['A_x','A_y']].apply(lambda x: ':'.join(x), axis = 1)

在我的真实数据集中,我有30列以上,并且我不想为每列写相同的行,是否有更快的方法来接收期望的输出?

最佳答案

concatgroupby怎么样?

df3 = pd.concat([df1,df2],axis=0)
df3 = df3.groupby(df3.index).transform(lambda x : ':'.join(x)).drop_duplicates()
print(df3)
         A       B             C        D
0  my:dog  he:cat  she:elephant  it:fish

10-08 04:22
查看更多