使用.map和defaultdict

时间:2018-06-07 16:40:28

标签: python pandas dictionary defaultdict map-function

我有一个pandas数据框,我必须根据现有列的值填充一个新列,并关联字典的值。

mydict={'key1':'val1', 'key2':'val2'}
df['new_col']=df['keys'].map(mydict)

现在我遇到了类似的问题,但字典现在是defaultdict(list)

my_defdict=defaultdict(list)
my_defdict={'key1':['val1','item1'], 'key2':['val2','item2']}

我需要一个包含列表第二个元素的新列,如

df['new_col2']=df['keys'].map(my_defdict()[1])

这当然是错的。如何在不创建其他普通字典的情况下执行此操作?

1 个答案:

答案 0 :(得分:1)

假设您的所有值每个列表至少包含两个项目,请在结尾处添加str[1]

df['new_col2'] = df['keys'].map(my_defdict).str[1]

或者,

df['new_col2'] = df['keys'].map(my_defdict).str.get(1)