Pandas 如何在不删除唯一值的情况下映射两个数据帧?

Pandas How to mapping two dataframes without remove unique value?

我有两个这样的数据框。

df1

  id    value1
0  002     10
1  003     10
2  004     20
3  005     20

df2

   id        value2
0  001        100
1  002        200
2  003        150

我用这段代码合并数据框。

df3 = pd.merge(df1, df2, left_on='id', right_on='id')

这段代码的输出是。

  id    value1 value2
0  002     10   200
1  003     10   150

我不想删除唯一数据。我想要这样的结果。

  id    value1  value2
  001     100     
  002     10     200
  003     10     150
  004     20
  005     20

如何在不删除唯一值的情况下映射两个数据框?

你可以试试how=outer

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

   id  value1  value2
0   2    10.0   200.0
1   3    10.0   150.0
2   4    20.0     NaN
3   5    20.0     NaN
4   1     NaN   100.0