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
如果您不这样做,我认为处理此问题的唯一方法是手动编码。
我有两个数据框,每个数据框都具有相同的变量和行长度,但分类变量(对象列)有时在一个与另一个中具有不同的实现。
这就是我的意思。
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
如果您不这样做,我认为处理此问题的唯一方法是手动编码。