是的,您必须将所有内容转换为数字。这需要考虑这些属性代表什么。
通常有三种可能性:
分类数据的单热编码
有序数据的任意数字
对分类数据使用类似集合的方法(例如,城市地区的平均价格)。
您必须小心不要在应用案例中注入您没有的信息。
One hot encoding
如果您有分类数据,则可以为每个可能的值创建0/1值的虚拟变量。
EG
idx color
0 blue
1 green
2 green
3 red
至
idx blue green red
0 1 0 0
1 0 1 0
2 0 1 0
3 0 0 1
这可以通过熊猫轻松完成:
import pandas as pd
data = pd.DataFrame({'color': ['blue', 'green', 'green', 'red']})
print(pd.get_dummies(data))
将导致:
color_blue color_green color_red
0 1 0 0
1 0 1 0
2 0 1 0
3 0 0 1
Numbers for ordinal data
创建可排序类别的映射,例如: G。旧
大熊猫也可以这样做:
data = pd.DataFrame({'q': ['old