gpt4 book ai didi

python - Pandas:将分类变量的值映射到预定义的虚拟列列表

转载 作者:太空宇宙 更新时间:2023-11-04 08:08:48 25 4
gpt4 key购买 nike

我有一个具有已知水平的分类变量(例如,hour,它只包含 0 到 23 之间的值),但不是所有的现在都可用(比如,我们有 0 点到 11 点之间的测量值,但不包括 12 点到 23 点之间的时间),尽管稍后将添加其他值。如果我们天真地使用 pandas.get_dummies() 将值映射到指示变量,我们最终将只有 12 个而不是 24 个。有没有办法将分类变量的值映射到 < strong>虚拟变量的预定义列表?

这是预期行为的示例:

possible_values = range(24)
hours = get_dummies_on_steroids(df['hour'], prefix='hour', levels=possible_values)

最佳答案

在 pandas 0.15 中使用新的和改进的 Categorical 类型:

import pandas as pd
import numpy as np
df = pd.DataFrame({'hour': [0, 1, 3, 8, 13, 14], 'val': np.random.randn(6)})
df
Out[4]:
hour val
0 0 -0.098287
1 1 -0.682777
2 3 1.000749
3 8 -0.558877
4 13 1.423675
5 14 1.461552

df['hour_cat'] = pd.Categorical(df['hour'], categories=range(24))
pd.get_dummies(df['hour_cat'])
Out[6]:
0 1 2 3 4 5 6 7 8 9 ...
0 1 0 0 0 0 0 0 0 0 0 ...
1 0 1 0 0 0 0 0 0 0 0 ...
2 0 0 0 1 0 0 0 0 0 0 ...
3 0 0 0 0 0 0 0 0 1 0 ...
4 0 0 0 0 0 0 0 0 0 0 ...
5 0 0 0 0 0 0 0 0 0 0 ...

您描述的情况,您知道您的数据可以采用一组特定的值,但是您不一定观察到所有这些,这正是 Categorical 的用武之地。

关于python - Pandas:将分类变量的值映射到预定义的虚拟列列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26724872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com