我有一个多键字典,我想用它在数据框中创建一个新列。使用单个关键数据帧这样做非常容易,但我很难理解将两个值发送到字典的正确语法是什么。
我已经能够使用 map、get 和 apply 来使用单键字典(地图示例)
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'
但我无法弄清楚df['newcol_b'] = df[['Col1', 'Col2']].map(dbl_dict)
获得所需结果的语法(尝试了大约 40 种不同的东西,例如 ):
Col1 Col2 newcol_a
0 1 A THIS
1 2 B HAS
2 3 C ME
3 4 D STUMPED