[英]Pandas get_dummies include columns for missing categories?
例如:
import numpy as np
import pandas as pd
df1 = pd.DataFrame({
'id': [1, 2, 3, 4],
'category': ['A', 'B', 'C', 'D']
})
df1_dummy = pd.get_dummies(df1)
print(df1_dummy)
然后我得到:
id category_A category_B category_C category_D
0 1 1 0 0 0
1 2 0 1 0 0
2 3 0 0 1 0
3 4 0 0 0 1
但是,我还有另一个 DataFrame 看起来像:
df2 = pd.DataFrame({
'id': [1, 2, 3, 4],
'category': ['A', 'A', 'B', 'B']
})
df2_dummy = pd.get_dummies(df2)
print(df2_dummy)
我有:
id category_A category_B
0 1 1 0
1 2 1 0
2 3 0 1
3 4 0 1
我的问题是,有没有什么方法可以自动生成 df2_dummy 看起来像 df1_dummy 它有列 ['category_C', 'category_D'] 并且值都是零,看起来像:
df2_dummy:
id category_A category_B category_C category_D
0 1 1 0 0 0
1 2 1 0 0 0
2 3 0 1 0 0
3 4 0 1 0 0
如果有人可以提供帮助,我将不胜感激!
假设df2
的类别与df1
的类别相同,您可以“同步”它们,以便pd.get_dummies
适当地处理缺失的类别:
pd.get_dummies(
pd.Categorical(df2['category'], categories=df1['category'].unique()))
A B C D
0 1 0 0 0
1 1 0 0 0
2 0 1 0 0
3 0 1 0 0
这是你要做的:
df2['category'] = pd.Categorical(
df2['category'], categories=df1['category'].unique())
pd.get_dummies(df2)
id category_A category_B category_C category_D
0 1 1 0 0 0
1 2 1 0 0 0
2 3 0 1 0 0
3 4 0 1 0 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.