有一个 DataFrame,您需要在其中比较两列,以便np.nan
两np.nan
列中的比较产生True
.
下面的代码返回两行。
np.nan
比较为False
.
df = pd.DataFrame({'Город1': ['Москва', 'Ярославль', 'Псков', np.nan,1],
'Город2': ['Москва', 'Самара', 'Ростов', np.nan,1]})
df[ df['Город1'] == df['Город2'] ]
写这样的比较对我来说不起作用:
df[ (df['Город1'] == df['Город2']) | (df['Город1'].isnull()& df['Город2'].isnull()) ]
我想把比较作为一个条件。
谢谢你!
也许最简单的方法是使用 fillna:
资源:
我建议考虑使用pandas.DataFrame.nqunique 这个方法有一个参数
dropna
,默认情况下等于True
。您需要应用方法cdropna=False
并选择结果等于1的那些行(nan
不同列中的值将被视为唯一):实验代码: