【发布时间】:2017-04-26 08:08:54
【问题描述】:
在 Pandas DataFrame 中,如何以序数形式(例如,1 表示工作日,2 表示周末)表示分类特征(例如,这一天是工作日还是周末)的列转换,以便它以分类方式表示值,例如 (0, 1) 表示工作日和 (1, 0) 表示周末,因此这些值不可比较?
还有使用pd.get_dummies(或OneHotEncoder)的替代方法,它会创建两列分别为0和1,然后将两列合并为元组,但是没有直接的方法吗?
示例: 我有:
datetime temp daytype
0 2011-01-01 9.84 2
1 2011-01-02 9.02 2
2 2011-01-03 9.02 1
3 2011-01-04 9.84 1
4 2011-01-05 9.84 1
5 2011-01-06 9.84 1
我想要:
datetime temp daytype
0 2011-01-01 9.84 (1, 0)
1 2011-01-02 9.02 (1, 0)
2 2011-01-03 9.02 (0, 1)
3 2011-01-04 9.84 (0, 1)
4 2011-01-05 9.84 (0, 1)
5 2011-01-06 9.84 (0, 1)
(我开始认为我可能弄错了 - 这不是表示分类值的默认方式吗?)
【问题讨论】:
-
我觉得你需要
df['daytype'] = df['daytype'].astype('category') -
是的,文档中也推荐使用 astype 或 dtype。我相信我(错误地)在寻找一种方法来实际可视化这些值是不可比较的。
标签: python pandas scikit-learn data-analysis categorical-data