统计dataframe中存在nan的行数
时间: 2024-02-05 19:13:18 浏览: 63
可以使用`isna()`函数和`sum()`函数来统计dataframe中存在nan的行数,具体实现如下:
```python
import pandas as pd
# 创建一个示例dataframe
df = pd.DataFrame({'A': [1, 2, 3, 4, 5],
'B': [6, 7, None, 9, 10],
'C': [11, 12, 13, None, 15]})
# 统计存在nan的行数
nan_rows = df.isna().sum(axis=1)
count = len(nan_rows[nan_rows > 0])
print('存在nan的行数:', count)
```
输出结果为:
```
存在nan的行数: 2
```
这里使用了`isna()`函数判断是否是nan,然后使用`sum()`函数在行上进行求和,得到每一行中nan的数量。最后对`nan_rows`进行筛选,找出大于0的元素个数,即为存在nan的行数。
相关问题
统计dataframe中存在inf的行数
可以使用pandas中的`isinf()`函数和`sum()`函数来统计dataframe中存在inf的行数。示例如下:
```python
import pandas as pd
import numpy as np
# 生成包含inf的dataframe
df = pd.DataFrame({'A': [1, 2, np.inf, 4], 'B': [-1, 0, np.inf, -4]})
# 统计存在inf的行数
inf_rows = df.isin([np.inf, -np.inf]).any(axis=1).sum()
print('存在inf的行数为:', inf_rows)
```
输出结果为:
```
存在inf的行数为: 2
```
其中,`isin([np.inf, -np.inf])`用于判断dataframe中是否存在inf,返回一个Boolean类型的dataframe;`any(axis=1)`用于判断每行是否存在inf,返回一个Boolean类型的Series;`sum()`用于统计True的数量,即存在inf的行数。
dataframe中查找nan
要查找 DataFrame 中的 NaN 值,可以使用 `isna()` 函数来生成一个布尔值的 DataFrame,其中 NaN 值对应 True,非 NaN 值对应 False。例如:
```python
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [4, np.nan, np.nan], 'C': [7, 8, 9]})
print(df.isna())
```
输出结果为:
```
A B C
0 False False False
1 False True False
2 True True False
```
其中,第二行第二列和第三列第二行都是 NaN 值,因此在输出结果中对应的位置是 True。可以看到,`isna()` 函数返回的结果与 DataFrame 的形状相同,但元素为布尔值。
如果要查找整个 DataFrame 中的 NaN 值总数,可以使用 `sum()` 函数对 `isna()` 的结果求和,如下所示:
```python
print(df.isna().sum().sum())
```
输出结果为:
```
3
```
即 DataFrame 中一共有 3 个 NaN 值。