Сопоставление значений Python из словаря в фрейм данных

#python #pandas

#python #pandas

Вопрос:

У меня есть фрейм данных pandas, который выглядит следующим образом:

 df = 
    key     value
1   Level       1
2   Age        35 
3   Height    180
4   Gender      0
...
  

и словарь следующим образом:

 my_dict = {
           'Level':{0: 'Low', 1:'Medium', 2:'High'},
           'Gender': {0: 'Female', 1: 'Male'}
          }
  

Я хочу сопоставить словарь с фреймом данных и изменить столбец «значение» на соответствующее значение в словаре, например, на выходе становится:

     key        value
1   Level     Medium
2   Age           35 
3   Height       180
4   Gender    Female
...
  

Это нормально, если другие значения в столбце также становятся строкой. Как я могу этого добиться? Спасибо за помощь.

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

1. Словарь выглядит неправильно. Это должно быть dict внутри dict?

2. Исправил, извините.

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

Ответ №1:

Проверьте с помощью replace

 out = df.set_index('key').T.replace(my_dict).T.reset_index()
out
Out[27]: 
      key   value
0   Level  Medium
1     Age      35
2  Height     180
3  Gender  Female
  

Ответ №2:

 df.at[1, 'value'] = my_dict['Level'][df.at[1, 'value']]
df.at[4, 'value'] = my_dict['Gender'][df.at[4, 'value']]