我正在逐行比较两列。
当两列中都存在NaN时,它返回false;如果存在Nan,则我想返回True。
例如,
这是我正在使用的代码:-
Pre_Out_df[res_name] = Pre_Out_df[plain_col] == Pre_Out_df[b_col]
例如,当两个列的比较行都具有Nan时,则返回False。
答案 0 :(得分:1)
检查缺失或不缺失,然后DataFrame.all
检查两个值是否均为True
或
DataFrame.any
检查是否至少一个值为True
:
df = pd.DataFrame({'plain_col':['1A12','1C12',np.nan],
'b_col':[np.nan,'1B',np.nan]})
df['res_name1'] = df[['plain_col', 'b_col']].isnull().all(axis=1)
df['res_name2'] = df[['plain_col', 'b_col']].isnull().any(axis=1)
df['res_name3'] = df[['plain_col', 'b_col']].notnull().all(axis=1)
df['res_name4'] = df[['plain_col', 'b_col']].notnull().any(axis=1)
print (df)
plain_col b_col res_name1 res_name2 res_name3 res_name4
0 1A12 NaN False True False True
1 1C12 1B False False True True
2 NaN NaN True True False False