熊猫-当两列中都存在Nan时,列比较返回False

时间:2019-01-28 09:20:44

标签: python pandas

我正在逐行比较两列。

当两列中都存在NaN时,它返回false;如果存在Nan,则我想返回True。

例如,

这是我正在使用的代码:-

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

例如,当两个列的比较行都具有Nan时,则返回False。

1 个答案:

答案 0 :(得分:1)

检查缺失或不缺失,然后DataFrame.all检查两个值是否均为TrueDataFrame.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