Python 缺少属性的总数
使用python和panda:对于给定的数据集,如何找到缺失属性的总数?我已经找到了每一列的数字,但是我需要使用python对这些列求和以找到总数。下面是我目前使用的代码Python 缺少属性的总数,python,pandas,Python,Pandas,使用python和panda:对于给定的数据集,如何找到缺失属性的总数?我已经找到了每一列的数字,但是我需要使用python对这些列求和以找到总数。下面是我目前使用的代码 def num_missing(x): return sum(x.isnull()) print("Missing Values per Column:") print(data_file1.apply(num_missing)) 选项1:调用.sum()两次,其中第二次调用查找中间系列的总和 df = pd.Dat
def num_missing(x):
return sum(x.isnull())
print("Missing Values per Column:")
print(data_file1.apply(num_missing))
选项1:调用.sum()
两次,其中第二次调用查找中间系列的总和
df = pd.DataFrame(np.ones((5,5)))
df.iloc[2:4, 1:3] = np.nan
df.isnull().sum().sum()
# 4
选项2:使用基础NumPy数组
np.isnan(df.values).sum()
# 4
选项2的速度应明显更快(此样本数据为8.5美元,而非249美元)
正如@root和所指出的,
np.isnan()
只对数字数据有效,而对对象不起作用pandas.DataFrame.isnull()
没有这个问题。考虑df
-
df
A B C
0 1.0 4 NaN
1 2.0 5 1.0
2 NaN 6 6.0
3 NaN 7 3.0
df.isnull().sum(0)
A 2
B 0
C 1
dtype: int64
df.isnull().sum(1)
0 1
1 0
2 1
3 1
dtype: int64
df.isnull().values.sum()
3
df
-宽NaN计数-
df.isnull().sum(1)
0 1
1 0
2 1
3 1
dtype: int64
df.isnull().values.sum()
3
data\u file1.isnull().sum(0)
请注意,np.isnan
只对数字数据有效,例如np.isnan(pd.Series(['foo',np.nan])值)
将升高。