我在进行机器学习研究时遇到了数据问题,特别是那些字符串特征。我想将这些对象(object)
映射为数字(int64)
。
例如,在workclass
特征中,创建一个映射字典(map(dict))
,如{'private':0,'State-gov':1,等等}
。
那么,在DataFrame中我应该如何处理呢?我是否需要编写一个for循环来查找一个特征中的n个不同类别,并为每个对象特征创建一个n键映射?
# 这是关于数据读取的代码
import pandas as pd
df_trainFeatures = pd.read_csv('data/trainFeatures.csv')
object_features = ['workclass','education','Marital-status', 'occupation','occupation','relationship','race','sex','native-country']
# 列出数据类型
for i in df_trainFeatures:
print(df_trainFeatures[i].dtype,i)
# 打印结果
int64 age
object workclass
int64 fnlwgt
object education
int64 education-num
object Marital-status
object occupation
object relationship
object race
object sex
int64 capital-gain
int64 capital-loss
int64 hours-per-week
object native-country
子数据框如下:
提前感谢
回答:
pandas.get_dummies(data)
它会将分类变量转换为虚拟/指示变量。
或者在你的情况下
pandas.get_dummies(df_trainFeautres['workclass'])