1
我想在Pandas數據框中對列進行單熱編碼。該欄中的某些值的發生率較低,因此我想將它們視爲同一類別。是使用one-hot-encoder還是get_dummies方法來做到這一點的方法? 我想出的一種方法是在編碼之前用一個字典替換這些值。任何建議將不勝感激。如何對列中的值進行單熱編碼,同時將某些值視爲同一類別
我想在Pandas數據框中對列進行單熱編碼。該欄中的某些值的發生率較低,因此我想將它們視爲同一類別。是使用one-hot-encoder還是get_dummies方法來做到這一點的方法? 我想出的一種方法是在編碼之前用一個字典替換這些值。任何建議將不勝感激。如何對列中的值進行單熱編碼,同時將某些值視爲同一類別
您可以使用:
df = pd.DataFrame({'A':[1,2,3,4,5,6,6,5,4]}).astype(str)
print (df)
A
0 1
1 2
2 3
3 4
4 5
5 6
6 6
7 5
8 4
首先得到下面treshold所有值與value_counts
和boolean indexing
和dict comprehension
添加像0
相同標量值。最後replace
:
tresh = 2
s = df['A'].value_counts()
d = {x:0 for x in s[s < tresh].index}
print (d)
{'1': 0, '3': 0, '2': 0}
df = df.replace(d)
print (df)
A
0 0
1 0
2 0
3 4
4 5
5 6
6 6
7 5
8 4
print (pd.get_dummies(df, prefix='', prefix_sep=''))
0 4 5 6
0 1 0 0 0
1 1 0 0 0
2 1 0 0 0
3 0 1 0 0
4 0 0 1 0
5 0 0 0 1
6 0 0 0 1
7 0 0 1 0
8 0 1 0 0
適合我的情況!謝謝 –
很高興能幫助,祝你好運! – jezrael