我正在寻找使用分隔符连接具有相同名称的列的最快方法。
我的数据框:
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列以上,并且我不想为每列写相同的行,是否有更快的方法来接收期望的输出?
最佳答案
concat
和groupby
怎么样?
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