如何在pandas DataFram中计算列中的NaN值

2024-04-26 23:45:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有数据,我想在其中找到NaN的个数,因此如果它小于某个阈值,我将删除这些列。我看了看,但找不到任何功能。有^{},但对我来说会很慢,因为大多数值都是不同的,我只想要NaN的计数。


Tags: 数据功能阈值nan计数个数
2条回答

可以从非nan值的count中减去总长度:

count_nan = len(df) - df.count()

你应该根据你的数据来计时。与isnull解相比,小级数的速度提高了3倍。

您可以使用^{}方法(或者它的别名isnull(),它也与旧的pandas版本<;0.21.0兼容),然后求和来计算NaN值。对于一列:

In [1]: s = pd.Series([1,2,3, np.nan, np.nan])

In [4]: s.isna().sum()   # or s.isnull().sum() for older pandas versions
Out[4]: 2

对于多个列,它也可以工作:

In [5]: df = pd.DataFrame({'a':[1,2,np.nan], 'b':[np.nan,1,np.nan]})

In [6]: df.isna().sum()
Out[6]:
a    1
b    2
dtype: int64

相关问题 更多 >