在 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'].apply(lambda x : (1, 0) if x == 2 else (0,1))
关于python - 如何将序数值转换为分类值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43628406/