当前位置:  开发笔记 > 编程语言 > 正文

如何计算pandas DataFrame中的nan值?

如何解决《如何计算pandasDataFrame中的nan值?》经验,为你挑选了2个好方法。

在pandas DataFrame中考虑(非数字)nan值的最佳方法是什么?

以下代码:

import numpy as np
import pandas as pd
dfd = pd.DataFrame([1, np.nan, 3, 3, 3, np.nan], columns=['a'])
dfv = dfd.a.value_counts().sort_index()
print("nan: %d" % dfv[np.nan].sum())
print("1: %d" % dfv[1].sum())
print("3: %d" % dfv[3].sum())
print("total: %d" % dfv[:].sum())

输出:

nan: 0
1: 1
3: 3
total: 4

期望的输出是:

nan: 2
1: 1
3: 3
total: 6

我使用pandas 0.17和Python 3.5.0与Anaconda 2.4.0.



1> ilyas patana..:

要仅计算空值,您可以使用isnull():

In [11]:
dfd.isnull().sum()

Out[11]:
a    2
dtype: int64

a是列名称,列中有2次出现空值.



2> Alex Riley..:

如果您只想计算'a'DataFrame 列中的NaN值df,请使用:

len(df) - df['a'].count()

这里count()告诉我们非NaN值的数量,并从值的总数中减去(由给定len(df)).

要计算列中的NaN值df,请使用:

len(df) - df.count()

如果你想使用value_counts,告诉它不要通过设置dropna=False(添加在0.14.1中)来删除NaN值:

dfv = dfd['a'].value_counts(dropna=False)

这样也可以计算列中的缺失值:

 3     3
NaN    2
 1     1
Name: a, dtype: int64

其余代码应该按预期工作(请注意,没有必要调用sum;只需要print("nan: %d" % dfv[np.nan])足够).

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有