1
假設我有以下數據幀中df
:在pandas中,如何選擇包含NaN的行?
a | b | c
------+-------+-------
5 | 2 | 4
NaN | 6 | 8
5 | 9 | 0
3 | 7 | 1
如果我這樣做df.loc[df['a'] == 5]
它會正確地返回第一和第三排,但這時如果我做了df.loc[df['a'] == np.NaN]
它沒有返回值。
我認爲這是一個比熊貓更蟒蛇的東西。如果我將np.nan
與任何東西比較,即使np.nan == np.nan
將評估爲False
,所以問題是,我應該如何測試np.nan
?
目標是有點複雜,但基本上你做的空用'DF [ '一']檢查ISNULL()'或'pd.isnull(DF。 [ '一'])'。然後選擇很容易:'df [df ['a']。isnull()]' – ayhan
你可以使用numpy.isnan(),它給你一個與輸入數組相同形狀的布爾數組。 – dnalow
一般來說,我會避免在DataFrame上使用'np.isnan'。它不像'pd.isnull'那樣健壯,它具有相同的功能。例如,比較當df = pd.DataFrame({'a':[]')時嘗試使用'np.isnan(df ['a'])'與'pd.isnull(df ['a']) 'x',np.nan,'y']})'。 – root