Python如何在使用一个热编码/pd.get_假人后反转实际值
我正在使用 警察局,去拿傻瓜 将具有4个标签(字符串)的分类向量转换为具有4列的二维数组。 然而,之后我找不到一种方法来恢复原始值。 使用时我也不能这样做 sklearn.preprocessing.OneHotEncoderPython如何在使用一个热编码/pd.get_假人后反转实际值,python,pandas,data-science,categorical-data,one-hot-encoding,Python,Pandas,Data Science,Categorical Data,One Hot Encoding,我正在使用 警察局,去拿傻瓜 将具有4个标签(字符串)的分类向量转换为具有4列的二维数组。 然而,之后我找不到一种方法来恢复原始值。 使用时我也不能这样做 sklearn.preprocessing.OneHotEncoder 什么是一个热编码类别向量的最佳wat,但之后能够反转原始值?您可以使用sklearn.preprocessing.onehotcoder的逆变换方法来执行此操作。我已经用下面的一个例子说明了这一点: from sklearn.preprocessing import On
什么是一个热编码类别向量的最佳wat,但之后能够反转原始值?您可以使用
sklearn.preprocessing.onehotcoder的逆变换方法来执行此操作。我已经用下面的一个例子说明了这一点:
from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder(handle_unknown='ignore')
X = [['Male'], ['Female'], ['Female']]
enc.fit(X)
enc.categories_
[array(['Female', 'Male'], dtype=object)]
enc.transform([['Female'], ['Male']]).toarray()
array([[1., 0.],
[0., 1.]])
enc.inverse_transform([[0, 1], [1,0], [0, 1]])
array([['Male'],
['Female'],
['Male']], dtype=object)
要将类别设置为关键字典,可以执行以下操作:
A = {}
for i in enc.categories_[0]:
A[i] = enc.transform([[i]]).toarray()
但是有更好的方法可以做到这一点
希望这有帮助 您可以使用sklearn.preprocessing.onehotcoder
的inverse\u transform
方法来执行此操作。我已经用下面的一个例子说明了这一点:
from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder(handle_unknown='ignore')
X = [['Male'], ['Female'], ['Female']]
enc.fit(X)
enc.categories_
[array(['Female', 'Male'], dtype=object)]
enc.transform([['Female'], ['Male']]).toarray()
array([[1., 0.],
[0., 1.]])
enc.inverse_transform([[0, 1], [1,0], [0, 1]])
array([['Male'],
['Female'],
['Male']], dtype=object)
要将类别设置为关键字典,可以执行以下操作:
A = {}
for i in enc.categories_[0]:
A[i] = enc.transform([[i]]).toarray()
但是有更好的方法可以做到这一点
希望这有帮助 您可以找到行的最大值并将其替换为该列名。
将numpy作为np导入
作为pd进口熊猫
df = pd.DataFrame({"A":[0,1,0,0],"B":[1,0,0,0],"C":[0,0,1,0], "D":[0,0,0,1]})
def decode(row):
for c in df.columns:
if row[c]==1:
return c
df = df.apply(decode,axis=1)
print(df)
输出:
0 B
1 A
2 C
3 D
dtype: object
您可以找到行的最大值并将其替换为该列名。
将numpy作为np导入
作为pd进口熊猫
df = pd.DataFrame({"A":[0,1,0,0],"B":[1,0,0,0],"C":[0,0,1,0], "D":[0,0,0,1]})
def decode(row):
for c in df.columns:
if row[c]==1:
return c
df = df.apply(decode,axis=1)
print(df)
输出:
0 B
1 A
2 C
3 D
dtype: object
你可以在这里提出一个类似的问题。你可以在这里提出一个类似的问题。是否有方法将类别打印到键词典?是否有方法将类别打印到键词典?