用python代码读取来聘人员信息数据hr_job.csv,查看每个特征的缺失值数目,查看分类数据特征的缺失值索引,将分类数据中的缺失值填补为“未知”并显示填补后结果,查看数值型特征缺失值索引,将数值型缺失值填补为其对应特征的均值,并显示填补后结果,查看数值型特征的异常数据,将数值型异常数据替换为其对应特征的均值。
时间: 2023-06-07 20:09:08 浏览: 344
好的,我知道了。以下是针对你的问题的代码实现:
``` python
import pandas as pd
import numpy as np
# 读取hr_job.csv数据
df = pd.read_csv('hr_job.csv')
# 查看每个特征的缺失值数目
print(df.isnull().sum())
# 查看分类数据特征的缺失值索引
categorical_cols = ['education', 'department', 'salary']
for col in categorical_cols:
missing_indices = df.index[df[col].isnull()]
print(f"{col}缺失值索引:{missing_indices}")
# 将分类数据中的缺失值填补为“未知”并显示填补后结果
df[categorical_cols] = df[categorical_cols].fillna('未知')
print(df[categorical_cols])
# 查看数值型特征缺失值索引
numeric_cols = ['last_evaluation', 'satisfaction_level']
for col in numeric_cols:
missing_indices = df.index[df[col].isnull()]
print(f"{col}缺失值索引:{missing_indices}")
# 将数值型缺失值填补为其对应特征的均值,并显示填补后结果
for col in numeric_cols:
mean = df[col].mean()
df[col] = df[col].fillna(mean)
print(df[numeric_cols])
# 查看数值型特征的异常数据
for col in numeric_cols:
q1 = df[col].quantile(0.25)
q3 = df[col].quantile(0.75)
iqr = q3 - q1
outliers_indices = df.index[(df[col] < (q1 - 1.5 * iqr)) | (df[col] > (q3 + 1.5 * iqr))]
print(f"{col}的异常值索引:{outliers_indices}")
# 将数值型异常数据替换为其对应特征的均值
for col in numeric_cols:
q1 = df[col].quantile(0.25)
q3 = df[col].quantile(0.75)
iqr = q3 - q1
outliers_indices = df.index[(df[col] < (q1 - 1.5 * iqr)) | (df[col] > (q3 + 1.5 * iqr))]
mean = df[col].mean()
df[col].iloc[outliers_indices] = mean
print(df[numeric_cols])
```
希望这个代码能够帮助你解决问题。
阅读全文