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