Использование .map с defaultdict - PullRequest
0 голосов
/ 07 июня 2018

У меня есть фрейм данных 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 голосов
/ 07 июня 2018

Предполагая, что все ваши значения имеют по крайней мере два элемента в списке, добавьте str[1] в конце:

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

Или,

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