pandasデータフレーム(df)があり、次のようなことをしたい:
_newdf = df[(df.var1 == 'a') & (df.var2 == NaN)]
_
NaNを_np.NaN
_、または_'NaN'
_または_'nan'
_などに置き換えようとしましたが、Trueと評価されるものはありません。 _pd.NaN
_はありません。
上記の式を評価する前にdf.fillna(np.nan)
を使用できますが、それはハック感があり、パンダ形式のNaNを識別できることに依存する他のpandas操作に干渉するか後。
この質問に対する簡単な答えがあるはずだと感じますが、どういうわけかそれは私を逃れました。どんなアドバイスも大歓迎です。ありがとうございました。
NaN
がNaN
を含むものと等しくないため、これは機能しません。代わりにpd.isnull(df.var2)
を使用してください。
最も単純なソリューション:
filtered_df = df[df['var2'].isnull()]
これにより、 'var2'列にNaN値のみを含む行がフィルタリングされます。
パンダはnumpy
のNaN値を使用します。つかいます - numpy.isnan
は、pandasシリーズからブールベクトルを取得します。