Pandas get_dummies 为同一特征生成多个列
Pandas get_dummies generates multiple columns for the same feature
我正在使用 pandas 系列并尝试将其转换为一种热编码。我正在使用 describe
方法来检查该系列有多少个独特类别。输出是:
input['pattern'].describe(include='all')
count 9725
unique 7
top 1
freq 4580
Name: pattern, dtype: object
当我尝试时:
x = pd.get_dummies(input['pattern'])
x.describe(include= 'all')
我得到 18 类 和 12 类 完全为零。为什么 get_dummies
产生了 类 而在输入中甚至没有出现过一次?
根据评论中的讨论,推断您的专栏包含字符串和整数的混合。
例如,
s = pd.Series(['0', 0, '0', '6', 6, '6', '3', '3'])
s
0 0
1 0
2 0
3 6
4 6
5 6
6 3
7 3
dtype: object
现在,调用 pd.get_dummies
将导致具有相同特征的多个这样的列。
pd.get_dummies(s)
0 6 0 3 6
0 0 0 1 0 0
1 1 0 0 0 0
2 0 0 1 0 0
3 0 0 0 0 1
4 0 1 0 0 0
5 0 0 0 0 1
6 0 0 0 1 0
7 0 0 0 1 0
解决方法是确保所有元素都属于同一类型。对于这种情况,我建议转换为 str
.
s.astype(str).str.get_dummies()
0 3 6
0 1 0 0
1 1 0 0
2 1 0 0
3 0 0 1
4 0 0 1
5 0 0 1
6 0 1 0
7 0 1 0
我正在使用 pandas 系列并尝试将其转换为一种热编码。我正在使用 describe
方法来检查该系列有多少个独特类别。输出是:
input['pattern'].describe(include='all')
count 9725
unique 7
top 1
freq 4580
Name: pattern, dtype: object
当我尝试时:
x = pd.get_dummies(input['pattern'])
x.describe(include= 'all')
我得到 18 类 和 12 类 完全为零。为什么 get_dummies
产生了 类 而在输入中甚至没有出现过一次?
根据评论中的讨论,推断您的专栏包含字符串和整数的混合。
例如,
s = pd.Series(['0', 0, '0', '6', 6, '6', '3', '3'])
s
0 0
1 0
2 0
3 6
4 6
5 6
6 3
7 3
dtype: object
现在,调用 pd.get_dummies
将导致具有相同特征的多个这样的列。
pd.get_dummies(s)
0 6 0 3 6
0 0 0 1 0 0
1 1 0 0 0 0
2 0 0 1 0 0
3 0 0 0 0 1
4 0 1 0 0 0
5 0 0 0 0 1
6 0 0 0 1 0
7 0 0 0 1 0
解决方法是确保所有元素都属于同一类型。对于这种情况,我建议转换为 str
.
s.astype(str).str.get_dummies()
0 3 6
0 1 0 0
1 1 0 0
2 1 0 0
3 0 0 1
4 0 0 1
5 0 0 1
6 0 1 0
7 0 1 0