Получение информации о том, какое значение соответствует определенному значению столбца

#python #dataframe #categorical-data #label-encoding

#python #фрейм данных #категориальный-данные #метка-кодирование

Вопрос:

Я хочу найти точное значение индекса для введенного определенного значения ключа в фрейме данных, ниже приведен код, который я пытаюсь выполнить, чтобы получить его.

data_who = pd.DataFrame({‘index’:data[‘index’], ‘Publisher_Key’:data[‘Key’]})

Ниже приведен мой O / P dataframe:

введите описание изображения здесь

Если предположить, что я ввожу, скажем, 100 в качестве ключевого значения, я хотел бы получить значение O / P значения индекса, которое равно Goat, что мне делать в моем коде??

PS: Слишком много меток в данных после выполнения кодирования меток, поэтому хотелось узнать, значение меток соответствует какой категории.

Ответ №1:

Если index это столбец, то вы можете сделать следующее:

 data.loc[data['Key'] == 100, 'index'].iloc[0]
>>> 'Zebra'
 

Или другой вариант:

 data[data['Key'] == 100]['index'].iloc[0]
>>> 'Zebra'
 

Если index — это индекс фрейма данных, замените ['index'] на .index .

В качестве дополнительного примечания: вы не должны называть столбец index в pandas, это сама концепция, и такое название столбца может ввести в заблуждение.

Ответ №2:

Я бы предложил три способа сделать это:

  1. Использование pandas:
 data_who.loc[data_who['key'] == 100, 'index'].values[0]
>>> 'Goat'
 
  1. Использование словарей python:
 who_dict = dict(zip(data_who['key'], data_who['index']))
who_dict[100]
>>> 'Goat'
 
  1. Наконец, если вы использовали LabelEncoder from skearn, он может инвертировать значения преобразования:
 le = LabelEncoder()
le.fit(animals) # fit on the list of animals
le.inverse_transform([100])