将所有的DataFrame中类别变量转换为数值,把 新建的数值列加入 DataFrame,删除原来的那一列代码书写
时间: 2024-10-11 11:07:20 浏览: 25
在Python的pandas库中,可以使用`get_dummies`函数或者`pd.CategoricalEncoder`将分类变量转换为数值。这里我会给出两个方法的示例:
**方法一:使用 get_dummies (独热编码)**
```python
import pandas as pd
# 假设df是一个包含类别变量的数据框
df = pd.DataFrame({'Category': ['A', 'B', 'A', 'C']})
# 创建新的数值列
new_df = pd.get_dummies(df['Category'])
# 合并新数据到原数据框,删除原始的Category列
df_new = pd.concat([df.drop('Category', axis=1), new_df], axis=1)
# 示例结果:
# Other_A Other_B Category_C
# 0 1 0 0
# 1 0 1 0
# 2 1 0 0
# 3 0 0 1
```
**方法二:使用 pd.CategoricalEncoder**
```python
from sklearn.preprocessing import CategoricalEncoder
# 创建编码器
encoder = CategoricalEncoder()
# 对类别列编码
encoded_values = encoder.fit_transform(df['Category'].values.reshape(-1, 1))
# 添加新列到DataFrame
df_new = df.copy()
df_new[['Category_' + str(i)] for i in range(encoded_values.shape[1])] = encoded_values
# 示例结果同上
```
阅读全文