在条件下在数据框中添加一行

时间:2018-12-17 11:28:33

标签: python pandas dataframe

想象一下,我有两个具有以下值的熊猫数据框:

Df1

id  value

1    45
2    48
3    78

Df2

id  value

1    45
2    49
3    78

我们可以看到有两个相似的值(对于ID 1和3),一个不同。

我希望Df1变成这样:

id  value

1    45
2    48
2    49
3    78

有什么想法可以做到吗?

非常感谢!

2 个答案:

答案 0 :(得分:2)

您需要merge

print(df1.merge(df2, how='outer', on=['value','id']))

输出:

    value   id
0   45      1
1   48      2
2   78      3
3   49      2

答案 1 :(得分:1)

您可以连接,并按id排序(如有必要),然后按drop_duplicates排序:

df = pd.concat([df1, df2]).sort_values('id').drop_duplicates()

print(df)

   id  value
0   1     45
1   2     48
1   2     49
2   3     78