Использование.map с defaultdict
У меня есть pandas dataframe, и я должен заполнить новый столбец на основе значений существующего столбца, связывая значения словаря.
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 ответ
Решение
Предполагая, что все ваши значения имеют как минимум два элемента в списке, добавьте str[1]
в конце:
df['new_col2'] = df['keys'].map(my_defdict).str[1]
Или же,
df['new_col2'] = df['keys'].map(my_defdict).str.get(1)