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

Pandas: How to get dummy variable columns from union of two dataframes?

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

这就是我的意思。

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

正如您在我上面的基本插图中看到的那样,绿色仅出现在第二个数据框中,而麦片仅出现在我的第一个数据框中。

基本上,考虑到两个数据帧(或更多)的 "variable ranges",我需要一种方法来创建虚拟变量列,因此我不能只对它们中的任何一个调用 pd.get_dummies

pandas 中没有其他功能可以帮助您做到这一点。正如您提到的,pd.get_dummies 只能在一个数据框中创建虚拟对象。

您的数据框中是否有索引或不同的 ID?

如果这样做,您可以将 categorical_2 子化并将它们合并到一个数据框中。然后就可以使用pd.get_dummies最后根据distinct index或者ID匹配回原来的dataframe

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