问题描述
我有2个数据框,每个数据框有一行,并且各列相同:
df1 = feat_1 feat_2 ... feat_n a b c d ... z
A B N 1 2 3 4 9
df2 = feat_1 feat_2 ... feat_n a b c d ... z
A B N 5 6 1 8 3
feat_1.. feat_n
与2行相同,其他列应串联在一起,以使新行为:
new_df = feat_1 feat_2 ... feat_n a_1 a_2 b_1 b_2 c_1 c_2 d_1 d_2 ... z_1 z_2
A B N 1 5 2 6 3 1 4 8 9 3
最好的方法是什么?
解决方法
只需使用merge命令:
new_df = pd.merge(df1,df2,how="inner",on =["feat_1",'feat_2','feat_n'],suffixes=('_1','_2'))
输入:
df1
feat_1 feat_2 feat_n a b
0 A B N 1 2
df2
feat_1 feat_2 feat_n a b
0 A B N 3 4
代码:
new_df = pd.merge(df1,'_2'))
打印:
feat_1 feat_2 feat_n a_1 b_1 a_2 b_2
0 A B N 1 2 3 4