我有一个包含age
,date
和location
列的数据框。
我想计算所有列中有多少行是空的(不是一些行,而是同时的所有行)。我有以下代码,每行独立工作,但我怎么说age AND date AND location
isnull?
df['age'].isnull().sum()
df['date'].isnull().sum()
df['location'].isnull().sum()
我希望在删除所有这三列中缺少值的行后返回一个数据帧,所以类似以下几行,但在一个语句中合并:
df.mask(row['location'].isnull())
df[np.isfinite(df['age'])]
df[np.isfinite(df['date'])]
答案 0 :(得分:1)
您可以通过
找到所有NaN的行数len(df) - len(df.dropna(how = 'all'))
并按
删除df = df.dropna(how = 'all')
这将删除具有所有NaN值的行
答案 1 :(得分:1)
您基本上可以使用您的方法,但删除列索引:
.sum()
第一个.sum()
返回每列值,而第二个NaN
将返回所有df.dropna()
值的总和。
与Vaishali's answer类似,您可以使用NaN
删除None
或In [45]: df = pd.DataFrame({'age': [1, 2, 3, np.NaN, 4, None], 'date': [1, 2, 3, 4, None, 5], 'location': ['a', 'b', 'c', None, 'e', 'f']})
In [46]: df
Out[46]:
age date location
0 1.0 1.0 a
1 2.0 2.0 b
2 3.0 3.0 c
3 NaN 4.0 None
4 4.0 NaN e
5 NaN 5.0 f
In [47]: df.isnull().sum().sum()
Out[47]: 4
In [48]: df.dropna()
Out[48]:
age date location
0 1.0 1.0 a
1 2.0 2.0 b
2 3.0 3.0 c
的所有值,并仅返回已清理的DataFrame。
{{1}}