pandas找到缺失值的索引
时间: 2023-05-12 11:04:50 浏览: 74
可以使用pandas库中的isnull()函数来查找缺失值,然后使用该函数返回的布尔索引来获取缺失值的索引。示例代码如下:
import pandas as pd
# 创建一个包含缺失值的DataFrame
df = pd.DataFrame({'A': [1, 2, None, 4], 'B': [5, None, 7, 8]})
# 查找缺失值的索引
missing_index = df.isnull().any(1).nonzero()[0]
print(missing_index)
输出结果为:[2 1],表示第2行和第1行存在缺失值。
相关问题
pandas删除缺失值那一个格子
你可以使用Pandas中的dropna()函数来删除包含缺失值的行或列。如果你想要删除包含缺失值的特定单元格,你可以使用loc[]方法来选择特定的单元格,并使用drop()函数来删除它。例如,如果你想删除行索引为0,列索引为1的单元格,你可以使用以下代码:
```
import pandas as pd
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [4, np.nan, 6], 'C': [7, 8, 9]})
df = df.dropna(subset=['A'], axis=0)
df = df.drop(['B'], axis=1)
print(df)
```
在上面的代码中,我们首先创建了一个包含缺失值的Pandas DataFrame,然后使用dropna()函数删除了包含缺失值的行。接下来,我们使用drop()函数删除了列B,这样就删除了第一行第二列的单元格。
pandas 随机生成缺失值
你可以使用 pandas 库的 `DataFrame` 中的 `sample` 方法来生成随机缺失值。
以下是一个示例代码:
```python
import pandas as pd
import numpy as np
# 创建一个 DataFrame
df = pd.DataFrame({'A': np.random.randint(1, 10, size=10),
'B': np.random.randint(1, 10, size=10),
'C': np.random.randint(1, 10, size=10)})
# 随机选择 3 个位置作为缺失值
missing = df.sample(n=3)
missing = list(zip(missing.index, missing.columns))
# 将这些位置的值设置为 NaN
for row, col in missing:
df.at[row, col] = np.nan
```
在这个例子中,我们首先创建了一个 DataFrame,然后使用 `sample` 方法随机选择了 3 个位置,并将它们存储为一个列表。然后我们使用 `at` 方法将这些位置的值设置为 NaN。
请注意,由于我们使用了 `at` 方法,因此我们需要指定行和列的标签。如果你想使用行和列的索引来设置值,可以使用 `iloc` 方法。