2017-04-09 5 views
1

Ich habe ein Wörterbuch und eine Liste. Für jeden Schlüssel in der Liste möchte ich die zugehörigen Werte mit diesem Schlüssel darstellen.Wie überspringe ich Schlüsselfehler in Pandas?

Ich habe den folgenden Code in Pandas:

import numpy as np; np.random.seed(22) 
import seaborn as sns; sns.set(color_codes=True) 

window = int(math.ceil(5000.0/100)) 
xticks = range(-2500,2500,window) 

sns.tsplot([mydictionary[k] for k in mylist],time=xticks,color="g") 

plt.legend(['blue']) 

Allerdings bekomme ich KeyError: xxxx

Ich kann manuell alle problematischen Schlüssel in meiner Liste entfernen, aber das wird eine lange Zeit in Anspruch nehmen. Gibt es eine Möglichkeit, diesen Schlüsselfehler zu überspringen?

Antwort

2

Wenn Sie nach einer Möglichkeit suchen, den Schlüsselfehler zu verschlucken, verwenden Sie eine try & except. Allerdings wäre es viel eleganter, die Daten im Voraus zu bereinigen.

Beispiel:

mydictionary = { 
    'a': 1, 
    'b': 2, 
    'c': 3, 
} 

mylist = ['a', 'b', 'c', 'd'] 

result = [] 
for k in mylist: 
    try: 
     result.append(mydictionary[k]) 
    except KeyError: 
     pass 

print(result) 

>>> [1, 2, 3] 

Sie müssen die Liste vor der Verwendung in Ihrem Seaborn Grundstück zu bauen. Danach übergeben Sie die Liste mit dem Anruf: sns.tsplot(result ,time=xticks,color="g")

Verwandte Themen