连接两个数据帧并保留非公共值,并添加Na值



我想从独立的数据框架联系两列。有一些值是共同的(大多数),但不是全部。这是一个简单的命令,但是我不知道我想要怎样的输出。

我需要的是:

  1. 相互之间的共同值
  2. 如果一个数据集中的一个值在另一个数据集中没有找到,请添加一个指示符(例如:"未找到";或者空值也可以)
  3. 我不想丢失或耗尽任何值。

first = pd.DataFrame({"id1": ["K0","K4" ])
second = pd.DataFrame({"id2": ["K0", "K2", "K3"], "v": [4, 6,3]})

# Output:
Id1       Id2
k0        k0
Not found K2
Not found K3
K4        Not found
...

根据文档,命令应该是

pd.concat([first, second["id2"]],axis=1,)

返回的是

Id1       Id2
k0        k0
K3        K2
K4        Na
...

我做错了什么?

我已经确保在两个输入列中都存在错误匹配的值

让我们尝试合并

out = first.merge(second[['id2']],left_on='id1',right_on='id2',how='outer').fillna('not found')
Out[186]: 
id1        id2
0         K0         K0
1         K4  not found
2  not found         K2
3  not found         K3

相关内容

  • 没有找到相关文章

最新更新