两个熊猫系列之间的匹配ID

时间:2020-03-09 13:35:57

标签: python-3.x pandas

我有一个简单的问题,但找不到正确的答案。我有两个大熊猫系列(比如说“ A”和“ B”),ID在那(字符串)。系列A大于系列B。我正在寻找一种具有2列的结果数据框的方法,其中匹配元素在同一行上,并且如果A中的值在B中不存在,则添加一个NaN。

A            B
10368        10368
12567        NaN
13456        13456
...          ...

,依此类推。

我想熊猫中的合并功能会有所帮助,但我无法使其起作用

预先感谢

2 个答案:

答案 0 :(得分:2)

您可以尝试以下方法:

df.loc[df['A'].isin(df['B']), 'B'] = df['A']
df.loc[~df['A'].isin(df['B']), 'B'] = np.nan

之前:

   A  B
0  1  2
1  2  1
2  3  4
3  7  0

之后:

   A    B
0  1  1.0
1  2  2.0
2  3  NaN
3  7  NaN

答案 1 :(得分:1)

您可以使用pd.concat和布尔索引使用isin

a = pd.Series(['10368', '12567', '13456'])
b = pd.Series(['10368', '13456'])

pd.concat([a, a[a.isin(b)]], axis=1)

[出]

       0      1
0  10368  10368
1  12567    NaN
2  13456  13456