pandas把多列的字符串映射数字
时间: 2024-11-24 07:42:19 浏览: 13
Pandas库中的`pandas.Categorical`或`pd.Series.map()`函数可以将多列的字符串转换为数值,通常用于数据预处理,特别是当需要对分类变量进行编码以便于机器学习模型训练的时候。下面是一个简单的例子:
```python
import pandas as pd
# 假设我们有如下DataFrame
data = {
'Category_A': ['A', 'B', 'A', 'C'],
'Category_B': ['X', 'Y', 'Z', 'X']
}
df = pd.DataFrame(data)
# 使用map()方法将每个类别映射到特定的数字
mapping_dict = {'A': 0, 'B': 1, 'C': 2, 'X': 3, 'Y': 4, 'Z': 5} # 可自定义映射规则
df[['Category_A_encoded', 'Category_B_encoded']] = df[['Category_A', 'Category_B']].apply(lambda x: x.map(mapping_dict))
print(df)
```
在这个例子中,`Category_A` 和 `Category_B` 的字符串会被分别转换成0、1、2或3、4、5这样的数值。`apply()`函数结合了`map()`功能,并对每一列应用映射规则。
阅读全文