pandas随机按照比例填充缺失值
时间: 2024-11-25 10:17:59 浏览: 80
Pandas库中的`fillna()`函数可以用于随机按比例填充缺失值。首先,你需要确定填充的比例,这可以通过`random.choice()`函数配合该比例实现。以下是一个基本步骤:
1. 导入pandas库和必要的模块:
```python
import pandas as pd
from numpy.random import choice
```
2. 创建一个数据框,假设名为df,并有缺失值:
```python
df = pd.DataFrame({'A': [1, 2, np.nan, 4], 'B': [5, np.nan, 7, 8]})
```
3. 定义填充的比例,比如0.2(意味着20%的缺失值会被填充):
```python
filling_ratio = 0.2
```
4. 使用`random.choice()`选择是否填充每个缺失值,True表示填充,False表示保留缺失:
```python
choices = [choice([True, False], p=[filling_ratio, 1 - filling_ratio]) for _ in range(len(df))]
```
5. 应用填充操作,这里可以创建一个新的列保存填充决策,然后用它更新DataFrame:
```python
mask = pd.Series(choices, index=df.index, name='_to_fill')
df['_to_fill'] = mask
df.fillna(value=df.mean(), inplace=True) # 或者使用其他填充策略,如中位数、平均值等
```
6. 删除临时列 `_to_fill`:
```python
del df['_to_fill']
```
现在,数据框df中的缺失值已经被随机按给定比例填充了。
阅读全文
相关推荐


















