熊猫-比较列并在不匹配以及列之一显示“找不到列”时返回False

时间:2019-02-01 15:57:28

标签: python pandas

我正在使用熊猫比较两列。

Pre_Out_df[res_name] = Pre_Out_df[plain_col] == Pre_Out_df[b_col]

上面的代码返回false。

但是我希望当Plain_col和b_col之间的任何一个值显示“找不到列”时,代码返回false。

我想在下面df中的最后一种情况下返回false,

enter image description here

2 个答案:

答案 0 :(得分:1)

将该列替换为NaN

Pre_Out_df=Pre_Out_df.replace({'Employee Not found',np.nan})

Pre_Out_df[res_name] = Pre_Out_df[plain_col] == Pre_Out_df[b_col]

np.nan==np.nan
Out[66]: False

答案 1 :(得分:1)

使用此条件代替,它检查plain_col是否为res_nameANDres_name是否相同。理想情况下,我们需要检查它们是否为Not Found,但是由于我们已经检查了它们是否相同,因此要检查其中一个(在这种情况下为Not Found)。

res_name

示例:

((df['res_name'] == df['plain_col']) & (df['res_name'] != 'Not Found'))

df = pd.DataFrame({ 'res_name': [1,2,'Not Found'], 'plain_col': [1,2,'Not Found'] }) 的输出:

df

然后显示以下代码:

    res_name    plain_col
0   1           1
1   2           2
2   Not Found   Not Found

输出:

((df['res_name'] == df['plain_col']) & (df['res_name'] != 'Not Found'))