获取多列pandas dataframe的匹配行

时间:2018-04-05 13:22:10

标签: python pandas

考虑我的第一个数据框df1

      col1 col2  col3
0    hello    q     1
1    world    q     2
2  welcome    r     3
3    hello    t     4

第二个数据框df2

    col1 col2  col3
0  hello    q     2

需要输出

      col1 col2  col3
0    hello    q     2
1    world    q     2
2  welcome    r     3
3    hello    t     4

'col1''col2'应该相等,如果'col3'不同,请获取输出并首先替换数据框中的值

我尝试使用merge

df1.merge(df2, on=['col1', 'col2'])

    col1 col2  col3_x  col3_y
0  hello    q       1       2

但我不知道下一步该做什么。

1 个答案:

答案 0 :(得分:1)

选项1

ITypeConvertermergeappend

drop_duplicates

选项2

df1.drop('col3', 1).merge(df2).append(df1).drop_duplicates(['col1', 'col2']) col1 col2 col3 0 hello q 2 1 world q 2 2 welcome r 3 3 hello t 4 set_index

combine_first