python数值化处理
时间: 2023-10-21 21:20:38 浏览: 72
数据预处理,python读取excel数据,分类属性数值化
3星 · 编辑精心推荐
数值化处理是将非数字数据转换为数字数据的过程,通常用于机器学习和数据分析中。在Python中,我们可以使用以下方法进行数值化处理:
1. Label Encoding:将分类变量转换为整数,例如将“男”和“女”转换为1和0。
```python
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
le.fit_transform(['male', 'female', 'male', 'female'])
```
2. One-Hot Encoding:将分类变量转换为二进制向量,例如将“红色”、“绿色”和“蓝色”转换为[1,0,0]、[0,1,0]和[0,0,1]。
```python
from sklearn.preprocessing import OneHotEncoder
import numpy as np
ohe = OneHotEncoder()
X = [['red'], ['green'], ['blue']]
ohe.fit_transform(X).toarray()
```
3. Ordinal Encoding:将有序变量转换为整数,例如将“低”、“中”和“高”转换为1、2和3。
```python
from sklearn.preprocessing import OrdinalEncoder
oe = OrdinalEncoder()
X = [['low'], ['medium'], ['high']]
oe.fit_transform(X)
```
4. Binning:将连续变量离散化为若干个区间,例如将年龄分为“儿童”、“青年”、“中年”和“老年”。
```python
import pandas as pd
df = pd.DataFrame({'age': [18, 25, 30, 40, 50, 60]})
bins = [0, 20, 30, 50, 100]
labels = ['Child', 'Young', 'Middle-aged', 'Senior']
df['age_group'] = pd.cut(df['age'], bins=bins, labels=labels)
```
阅读全文