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