2016-03-31 2 views
0

Я новичок в python и просмотрел многочисленные страницы для этого.Список карт из словарей

Я знаю, что кадры данных панды есть это отображение functionlity:

dictionary = {a:1, b:2, c:6} 

df['col_name'] = df.col_name.map(dictionary) #df is a pandas dictionary 

Как я могу сделать что-то подобное для списков, т.е.

mapped_list = list_to_be_mapped.map(dictionary) 

где в

list_to_be_mapped = [a,a,b,c,c,a] 
mapped_list  = [1,1,2,6,6,1] 
+0

Должен ли ваш 'mapped_list' быть' [1, 1, 2, 6, 6, 1] 'согласно вашему dicitionary? –

+0

Да, я внедрил изменения. Это была небольшая опечатка. Это не меняет ответа, хотя! Спасибо. –

ответ

3

Вы можете используйте функцию dictionaryget

list(map(dictionary.get, list_to_be_mapped)) 
2

IIUC вы можете использовать простой list comprehension для этого:

[dictionary[key] for key in list_to_be_mapped] 

In [51]: [dictionary[key] for key in list_to_be_mapped] 
Out[51]: [1, 1, 2, 6, 6, 1] 

Если вы предпочитаете pandas решение, которое вы можете конвертировать ваши list_to_be_mapped в серии, а затем использовать так же, как в вашем примере:

s = pd.Series(list_to_be_mapped) 

In [53]: s 
Out[53]: 
0 a 
1 a 
2 b 
3 c 
4 c 
5 a 
dtype: object 

In [55]: s.map(dictionary).tolist() 
Out[55]: [1, 1, 2, 6, 6, 1] 
Смежные вопросы