У меня есть следующий фреймворк в Pandas
OfferPreference_A OfferPreference_B OfferPreference_C
A B A
B C C
C S G
У меня есть следующий словарь уникальных значений под всеми столбцами
dict1={A:1, B:2, C:3, S:4, G:5, D:6}
У меня также есть список столбцов
columnlist=['OfferPreference_A', 'OfferPreference_B', 'OfferPreference_C']
Я пытаюсь получить следующую таблицу в качестве вывода
OfferPreference_A OfferPreference_B OfferPreference_C
1 2 1
2 3 3
3 4 5
Как мне это сделать.
Вы можете использовать map
для этого, как показано ниже, при условии, что значения будут всегда совпадать
for col in columnlist:
df[col] = df[col].map(dict1)
Использование:
#if value not match get NaN
df = df[columnlist].applymap(dict1.get)
Или же:
#if value not match get original value
df = df[columnlist].replace(dict1)
Или же:
#if value not match get NaN
df = df[columnlist].stack().map(dict1).unstack()
print (df)
OfferPreference_A OfferPreference_B OfferPreference_C
0 1 2 1
1 2 3 3
2 3 4 5