【问题标题】:Is there a way to convert categorical variable into dummy with a dict with Pandas?有没有办法用 Pandas 的字典将分类变量转换为虚拟变量?
【发布时间】:2019-05-29 21:53:59
【问题描述】:

我目前正在处理pandas.DataFrame,我需要将一些分类变量转换为虚拟变量。

但是,当我从一个庞大的数据库中构建我的pandas.DataFrame 时,我很确定如果我只使用pd.get_dummies,我会错过一些模式。

幸运的是,我从需要转换的特征中检索了所有模态。

我想知道是否有可能(是否使用pd.get_dummies)根据我检索到的模式有效地转换我的变量?

我寻找了一个解决方案,有和没有 get_dummies,但没有找到。

谢谢:)

【问题讨论】:

标签: python pandas


【解决方案1】:

IIUC,你可以使用Pandas.Categorical dtype 来处理。

示例

# Setup
np.random.seed(0)
df = pd.DataFrame(np.random.choice(['A', 'B', 'C'], 6), columns=['cat'])
print(df)

[出]

  cat
0   A
1   B
2   A
3   B
4   B
5   C

在此运行 pandas.get_dummies 会产生...

pd.get_dummies(df['cat'])

[出]

   A  B  C
0  1  0  0
1  0  1  0
2  1  0  0
3  0  1  0
4  0  1  0
5  0  0  1    

现在将此Series 转换为categorical dtype,并传入已知类别列表...

categories = ['A', 'B', 'C', 'D', 'E']
df['cat'] = pd.Categorical(df['cat'], categories=categories)

pd.get_dummies(df['cat'])

[出]

   A  B  C  D  E
0  1  0  0  0  0
1  0  1  0  0  0
2  1  0  0  0  0
3  0  1  0  0  0
4  0  1  0  0  0
5  0  0  1  0  0

【讨论】:

  • 我只需要在 for 循环中执行此操作,但效果很好,非常感谢!
猜你喜欢
  • 2021-01-01
  • 2019-02-08
  • 1970-01-01
  • 2018-03-22
  • 2021-06-22
  • 2021-06-11
  • 2018-10-23
  • 2020-08-02
  • 2020-11-28
相关资源
最近更新 更多