我正在使用熊猫比较两列。
Pre_Out_df[res_name] = Pre_Out_df[plain_col] == Pre_Out_df[b_col]
上面的代码返回false。
但是我希望当Plain_col和b_col之间的任何一个值显示“找不到列”时,代码返回false。
我想在下面df中的最后一种情况下返回false,
答案 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_name
时AND
和res_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'))