熊猫:如何从两个数据帧的联合中获得虚拟变量列?

时间:2019-01-13 04:10:11

标签: python pandas dataframe categorical-data dummy-variable

我有两个数据框,每个数据框具有相同的变量和行长,但是类别变量(对象列)有时在一个与另一个之间具有不同的实现。

这是我的意思。

Frame 1 | categorical_1 | categorical_2 |||  Frame 2 | categorical_1 | categorical_2
row 1   | blue          | flakes        |||  row 1   | blue          | flakes
row 2   | red           | cheerios      |||  row 2   | red           | flakes
row 3   | blue          | cheerios      |||  row 3   | green         | flakes

如您在上面的基本图示中所见,绿色仅出现在第二个数据框中,而欢乐时光仅出现在我的第一个数据框中。

基本上,我需要一种考虑两个数据帧(或更多个数据帧)的“变量范围”来创建虚拟变量列的方法,因此我不能只对其中两个调用pd.get_dummies

1 个答案:

答案 0 :(得分:0)

熊猫没有其他功能可以帮助您完成此操作。如您所述,pd.get_dummies只能在一个数据帧中创建虚拟变量。

数据框中是否有索引或其他ID?

如果这样做,则可以将categorical_2子化并将它们合并到一个数据帧中。然后,您可以使用pd.get_dummies,最后根据不同的索引或ID将其匹配回原始数据帧。

如果您不这样做,我认为处理此问题的唯一方法是手动编码。