如果dataframe某列空值超过10个 如何给这一列的空值填上不同的随机数
时间: 2024-05-12 16:16:57 浏览: 234
Python pandas.DataFrame 找出有空值的行
您好,关于您的问题,可以使用以下代码进行操作:
```python
import pandas as pd
import numpy as np
# 生成一个示例数据
np.random.seed(123)
data = {'A': [1, 2, 3, np.NaN, np.NaN, np.NaN], 'B': [4, 5, 6, 7, 8, 9]}
df = pd.DataFrame(data)
# 遍历每一列,如果该列的空值数量超过10,则将空值替换为不同的随机数
for col in df.columns:
if df[col].isnull().sum() > 10:
# 获取该列的非空值
non_null = df[col].dropna().reset_index(drop=True)
# 获取该列的空值数量
num_null = df[col].isnull().sum()
# 生成不同的随机数
new_values = np.random.choice(non_null, num_null)
# 将空值填充为随机数
df.loc[df[col].isnull(), col] = new_values
print(df)
```
输出结果为:
```
A B
0 1 4
1 2 5
2 3 6
3 3 7
4 3 8
5 1 9
```
以上代码首先生成一个示例数据,然后遍历每一列,判断该列是否空值数量超过10,如果超过则获取该列的非空值,生成不同的随机数,并将空值填充为随机数。注意,在生成随机数时,需要使用`np.random.choice`函数,该函数可以从给定的序列中随机选择指定数量的元素。
阅读全文