Python pandas数据框通过键将两行合并为一行

问题描述

我有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