基于熊猫中的两列值组合两个数据框

时间:2021-05-12 22:32:25

标签: python python-3.x pandas dataframe merge

我有一个这样的 dafarame:

df1:

     col1  col2        data1       data2    data3
0     A     A_1         2            4        5
1     A     A_2         11           58       87
2     A     A_3         14           24       54
3     B     B_1         3            6        9
4     B     B_2         1            38       77
5     B     B_3         54           13       10

而且我还有一个数据框就是这个:

df2:

     col1  col2        sample1    sample2  sample3
0     A     A_0         98          57       102
2     A     A_1         6           13       5
2     A     A_2         13          52       17
3     A     A_3         8           29       50
4     B     B_0         60          75       98
5     B     B_1         3           6        9
6     B     B_2         1           8        77
7     B     B_3         2           1        10

那么,我如何基于 col1 和 col2 组合这些数据帧并创建这样的数据帧:

     col1  col2        sample1    sample2  sample3     data1   data2   data3
0     A     A_0         98          57       102        NaN     NaN     NaN
2     A     A_1         6           13       5          2       4       5
2     A     A_2         13          52       17         11      58      87
3     A     A_3         8           29       50         14      24      54
4     B     B_0         60          75       98         NaN     NaN     NaN
5     B     B_1         3           6        9          3       6       9
6     B     B_2         1           8        77         1       38      77
7     B     B_3         2           1        10         54      13      10

1 个答案:

答案 0 :(得分:1)

使用pandas.merge on 参数定义要合并数据框的列以及 how 关键字定义了您想要的合并类型。请查看文档以确认您想要哪种类型的合并。但我认为在这种情况下您需要 outer 合并。

print(pd.merge(df1, df2, on='col2',how='outer'))