什么是解释数据帧中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一起使用
要仅计算空值,可以使用^{} :
这里
a
是列名,列中出现了两次null值如果要仅统计数据帧
df
的列'a'
中的NaN值,请使用:这里
count()
告诉我们非NaN值的数量,这是从值的总数中减去的(由len(df)
给出)要在
df
的每列中计算NaN值,请使用:如果要使用
value_counts
,请通过设置dropna=False
(在0.14.1中添加),告诉它而不是删除NaN值:这也允许对列中缺少的值进行计数:
然后,代码的其余部分应按预期工作(注意,不必调用
sum
;只需print("nan: %d" % dfv[np.nan])
即可)计算数据帧所有列中所有NaN的一个好方法是
使用单个求和,可以得到每列的NaN计数。第二个和,对这些列和求和
相关问题 更多 >
编程相关推荐