将指定几列的空缺值用均值填充后将数据进行特征工程和探索性分析代码
时间: 2024-09-09 12:12:56 浏览: 29
在Python的数据处理库Pandas中,对包含缺失值的DataFrame进行均值填充并进行特征工程和探索性分析通常涉及以下几个步骤:
1. 导入所需库:
```python
import pandas as pd
import numpy as np
from sklearn.impute import SimpleImputer
import seaborn as sns
import matplotlib.pyplot as plt
```
2. 加载数据:
```python
data = pd.read_csv('your_data.csv') # 替换为实际文件路径
```
3. 检查缺失值:
```python
null_counts = data.isna().sum()
print(null_counts)
```
4. 使用`SimpleImputer`填充缺失值:
```python
# 对特定列进行填充(这里假设'column1', 'column2'有缺失值)
imputer = SimpleImputer(strategy='mean')
filled_data = imputer.fit_transform(data[['column1', 'column2']])
filled_data = pd.DataFrame(filled_data, columns=['column1', 'column2'], index=data.index)
# 结合原始数据
data_with_filled_values = pd.concat([data.drop(['column1', 'column2'], axis=1), filled_data], axis=1)
```
5. 数据预处理(标准化、编码等):
```python
# 示例:标准化数值型列
num_cols = data_with_filled_values.select_dtypes(include=np.number).columns.tolist()
scaler = StandardScaler() # 如果需要
scaled_data = scaler.fit_transform(data_with_filled_values[num_cols])
scaled_data = pd.DataFrame(scaled_data, columns=num_cols, index=data.index)
data_processed = pd.concat([data_with_filled_values.drop(num_cols, axis=1), scaled_data], axis=1)
```
6. 探索性数据分析(EDA):
```python
# 描述统计
data_processed.describe()
# 相关性分析
correlation_matrix = data_processed.corr()
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm')
# 分布图或箱线图(视具体变量性质)
for column in data_processed.columns:
sns.displot(data_processed[column])
# 更深入的分析可以包括可视化分群、聚类等
```
阅读全文