python数据工程特征处理案例
时间: 2024-10-15 09:22:31 浏览: 32
Python数据分析和特征提取
Python数据工程中的特征处理是一个关键步骤,通常涉及到清洗、转换和创建新特征来提高机器学习模型的性能。下面是一个简单的案例:
假设我们有一个包含用户购买历史的数据集,其中包含"用户ID"、"商品类别"、"购买时间"等字段。首先,我们需要做以下操作:
1. **缺失值处理**:检查是否存在缺失值,可以用pandas库的`isnull()`函数。可以填充缺失值(例如平均值、众数),或者删除含有大量缺失值的行。
```python
import pandas as pd
df = pd.read_csv('purchase_data.csv')
df.fillna(df.mean(), inplace=True) # 或者 df.dropna() 删除有缺失值的行
```
2. **编码分类变量**:如"商品类别"可能是字符串,需要转换为数值以便模型能理解。可以使用`pd.get_dummies()`或`LabelEncoder`。
```python
category_df = pd.get_dummies(df['商品类别'])
df = pd.concat([df.drop('商品类别', axis=1), category_df], axis=1)
```
3. **日期时间处理**:"购买时间"字段可能需要转化为时间序列特征,比如提取年份、月份、周几等信息。可以使用`pd.to_datetime` 和 `dt`属性。
```python
df['购买时间'] = pd.to_datetime(df['购买时间'])
df['购买年份'], df['购买月份'] = df['购买时间'].dt.year, df['购买时间'].dt.month
```
4. **特征创造**:基于已有数据,可能创造出新的关联特征,如用户连续购买天数、热门商品组合等。
5. **标准化或归一化**:如果特征之间量纲差距大,可能需要对数值型特征进行标准化或归一化,比如`sklearn.preprocessing.StandardScaler`或`MinMaxScaler`。
```python
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
df[['购买金额']] = scaler.fit_transform(df[['购买金额']])
```
阅读全文