#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']]