我想从独立的数据框架联系两列。有一些值是共同的(大多数),但不是全部。这是一个简单的命令,但是我不知道我想要怎样的输出。
我需要的是:
- 相互之间的共同值
- 如果一个数据集中的一个值在另一个数据集中没有找到,请添加一个指示符(例如:"未找到";或者空值也可以)
- 我不想丢失或耗尽任何值。
。
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