使用 .map 和 defaultdict
Usage of .map with defaultdict
我有一个 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])
这当然是错误的。如何在不创建另一个普通字典的情况下执行此操作?
假设您的所有值每个列表至少有两个项目,在末尾添加一个 str[1]
:
df['new_col2'] = df['keys'].map(my_defdict).str[1]
或者,
df['new_col2'] = df['keys'].map(my_defdict).str.get(1)
我有一个 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])
这当然是错误的。如何在不创建另一个普通字典的情况下执行此操作?
假设您的所有值每个列表至少有两个项目,在末尾添加一个 str[1]
:
df['new_col2'] = df['keys'].map(my_defdict).str[1]
或者,
df['new_col2'] = df['keys'].map(my_defdict).str.get(1)