我有一个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])
这当然是错的。如何在不创建其他普通字典的情况下执行此操作?
答案 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)