У меня есть многоключевой словарь, который я хотел бы использовать для создания нового столбца в кадре данных. Сделать это с помощью одного ключевого кадра данных довольно просто, но я озадачен правильным синтаксисом для отправки двух значений в словарь.
Мне удалось использовать словарь с одним ключом с помощью map, get, и применить (пример карты)
import pandas as pd
df = pd.DataFrame(data = {'Col1': [1, 2, 3, 4], 'Col2': ['A', 'B', 'C', 'D']})
single_dict = {1: 'This', 2: 'is', 3: 'pretty', 4: 'easy'}
df['newcol_a'] = df['Col1'].map(single_dict)
print(df)```
, который возвращает ожидаемое "
Col1 Col2 newcol_a
0 1 A This
1 2 B is
2 3 C pretty
3 4 D easy
Но когда я создаю многоключевой словарь, такой как
dbl_dict = {1: {'A': 'THIS', 'B': 'blah', 'C': 'blah', 'D': 'blah'},
2: {'A': 'blah', 'B': 'HAS' , 'C': 'blah', 'D': 'blah'},
3: {'A': 'blah', 'B': 'blah', 'C': 'ME' , 'D': 'blah'},
4: {'A': 'blah', 'B': 'blah', 'C': 'blah', 'D': 'STUMPED'},}
, я могу чтобы вызвать его, используя 'get'
dbl_dict.get(1, {}).get('A', 'Other')
Out[5]: 'THIS'
Но я не могу понять синтаксис (пробовал около 40 разных вещей, таких как df['newcol_b'] = df[['Col1', 'Col2']].map(dbl_dict)
), чтобы получить желаемые результаты:
Col1 Col2 newcol_a
0 1 A THIS
1 2 B HAS
2 3 C ME
3 4 D STUMPED