2016-03-31 14 views
0

Ich bin neu bei Python und habe zahlreiche Seiten dafür angeschaut.Kartenliste von Wörterbüchern

weiß ich Pandas Datenrahmen haben diese Zuordnung functionlity:

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

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

Wie kann ich etwas tun ähnlich für Listen, dh

mapped_list = list_to_be_mapped.map(dictionary) 

wo in

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

Sollte Ihre 'mapped_list' nach Ihrem Diktat '[1, 1, 2, 6, 6, 1] sein? –

+0

Ja, ich habe die Änderungen implementiert. Es war ein kleiner Tippfehler. Dies ändert jedoch nicht die Antwort! Danke. –

Antwort

3

Sie können Verwenden Sie die dictionaryget Funktion

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

IIUC könnten Sie einfach list comprehension dafür verwenden:

[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] 

Wenn Sie pandas Lösung bevorzugen Sie Ihre list_to_be_mapped zu Serie umwandeln konnten und dann das gleiche verwenden, wie in Ihrem Beispiel:

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] 
Verwandte Themen