【发布时间】:2018-08-19 13:01:19
【问题描述】:
我想询问this question 的扩展,它谈到了为缺失的类添加标签以确保虚拟对象被正确编码为空白。
有没有办法在多组数据中自动执行此操作并让标签在两者之间自动同步? (即用于测试和训练集)。 IE。相同的列,但每列中表示的数据类别不同?
例如: 假设我有以下两个数据框:
df1 = pd.DataFrame.from_items([('col1', list('abc')), ('col2', list('123'))])
df2 = pd.DataFrame.from_items([('col1', list('bcd')), ('col2', list('234'))])
df1
col1 col2
1 a 1
2 b 2
3 c 3
df2
col1 col2
1 b 2
2 c 3
3 d 4
我想拥有:
df1
col1_a col1_b col1_c col1_d col2_1 col2_2 col2_3 col2_4
1 1 0 0 0 1 0 0 0
2 0 1 0 0 0 1 0 0
3 0 0 1 0 0 0 1 0
df2
col1_a col1_b col1_c col1_d col2_1 col2_2 col2_3 col2_4
1 0 1 0 0 0 1 0 0
2 0 0 1 0 0 0 1 0
3 0 0 0 1 0 0 0 1
无需提前指定col1_labels = ['a', 'b', 'c', 'd'], col2_labels = ['1', '2', '3', '4']
我可以一次系统地为许多列执行此操作吗?我在想象一个功能,当传入两个或多个数据帧时(假设所有列都相同):
- 读取 pandas 数据框中的哪些列是类别
- 找出总体标签是什么
- 然后为每一列提供类别标签 这看起来对吗?有没有更好的方法?
【问题讨论】:
标签: python pandas machine-learning dummy-variable