python - 如何将序数值转换为分类值?

标签 python pandas scikit-learn data-analysis categorical-data

在 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/

相关文章:

python - 将旧文件中已有换行符的行打印到新文件的同一行中

python - 是否可以在使用贪婪字符时重新找到最小匹配

python - Python:solvePnP()没有足够的值可解包?

python - python中有非二元决策树的库吗?

python - 如何获取 Keras 中 ImageDataGenerator 的 .flow_from_directory 函数扫描的类的名称?

python - 在数据探索编码中获取 UnboundLocalError

python - 返回 pandas 数据框中的行,其中列中的元组包含特定值

python - pandas MultiIndex 中的幽灵指数

python - 在Python中对加速度计数据随时间的变化进行分类

python - 使用 SKLearn 构建模型时忽略列