类别数据空值插补 python
时间: 2023-09-12 19:03:28 浏览: 97
数据处理Pandas-空值,0值等缺失值检测-Python实例源码.zip
5星 · 资源好评率100%
类别数据空值插补的方法通常有以下几种:
1. 众数插补(mode imputation):用该变量的众数(出现次数最多的值)来填补缺失值。
```python
df['column'].fillna(df['column'].mode()[0], inplace=True)
```
2. 随机插补(random imputation):从该变量的非缺失值中随机选择一个值来填补缺失值。
```python
import random
non_missing = df['column'].dropna()
random_value = random.choice(non_missing)
df['column'].fillna(random_value, inplace=True)
```
3. 利用其他变量插补(imputation using other variables):根据其他相关变量的取值来预测缺失变量的取值。
```python
# 假设有两个变量 column1 和 column2,其中 column2 中有缺失值
# 首先使用 column1 的均值来填补 column2 的缺失值
mean_value = df['column1'].mean()
df['column2'].fillna(mean_value, inplace=True)
# 然后使用线性回归模型来预测 column2 的缺失值
from sklearn.linear_model import LinearRegression
X = df[df['column2'].notnull()]['column1'].values.reshape(-1, 1)
y = df[df['column2'].notnull()]['column2'].values
model = LinearRegression()
model.fit(X, y)
X_pred = df[df['column2'].isnull()]['column1'].values.reshape(-1, 1)
y_pred = model.predict(X_pred)
df.loc[df['column2'].isnull(), 'column2'] = y_pred
```
阅读全文