Неожиданный результат при кодировании меток pandas

#python #python-3.x #pandas #numpy

#python #python-3.x #pandas #numpy

Вопрос:

У меня есть приведенный ниже код для кодирования меток:

 import numpy as np
import pandas as pd

train_sentiments = pd.Series(['neutral', 'positive', 'neutral', 'negative'])
y_train = np.asarray(pd.get_dummies(train_sentiments), dtype = np.int8)

print('"{}" is converted into {}'.format(train_sentiments[0], y_train[0]))
print('"{}" is converted into {}'.format(train_sentiments[1], y_train[1]))
print('"{}" is converted into {}'.format(train_sentiments[3], y_train[3]))
  

Результат, который я получаю для приведенной выше части, заключается в том, что для меток закодированное значение одинаково:

 "neutral" is converted into [1 0 0]
"positive" is converted into [1 0 0]
"negative" is converted into [1 0 0]
  

Как узнать, для чего закодированы значения для каждой метки?

Комментарии:

1. Он относится к типу <class 'pandas.core.series.Series'> , образец из серии выглядит следующим образом — 5530 negative 7017 neutral 10916 positive

2. Что, если вы не будете конвертировать с помощью np.asarray и индексировать как y_train.iloc[0,:] или проверять y_train.head()

3. попробуйте передать train_sentiments в виде списка, я смог получить правильный вывод, используя это

4. Я протестировал ваш код, и я получаю другой результат, я получаю правильный вывод: «нейтральный» преобразуется в [0 1 0] «положительный» преобразуется в [0 0 1] «отрицательный» преобразуется в [1 0 0]

5. @HodossySzabolcs не могли бы вы, пожалуйста, поделиться кодом, который вы использовали для тестирования. По крайней мере, я могу сравнить с тем, что у меня есть.