2017-09-20 1 views
4

Ich habe eine CSV-Datei mit einer Spalte namens Trigger und zwei anderen Spalten namens void1 und void2.Lesen von Werten aus einer CSV-Datei in ein Listenwörterbuch

Die Daten sieht wie folgt aus:

Trigger;void1;void 
good;not good;not to good; 

Ich möchte diese Daten verwenden, um ein Wörterbuch zu erstellen, die wie folgt aussieht:

dictionary ={"good":["not good", "not to good"]} 

verwendete ich den folgenden Code zu starten:

df = pd.read_csv('dictionary.csv', sep =";") 

for index, row in df.iterrows(): 
    dictionary[row['trigger']] = row['void1'] 

Was funktioniert. Aber wenn ich es versuche:

df = pd.read_csv('dictionary.csv', sep =";") 

for index, row in df.iterrows(): 
    dictionary[row['trigger']] = row['void1', 'void2'] 

Es funktioniert nicht. Irgendwelche Ideen, wie ich die Ausgabe bekommen kann, nach der ich suche?

+0

Wie wäre es mit 'dictionary [row ['trigger']] = [row ['void1'], row ['void2']]'? –

Antwort

0

Bitte Zugriff nur eine Spalte von row zu einem Zeitpunkt:

for index,row in df.iterrows(): 
    dictionary[row['trigger']] = [row['void1'], row['void2']] 
2

Numpy wie Listen Standard Python funktioniert Angenommen, Sie müssen diese Zeile ändern:

dictionary[row['trigger']] = row['void1', 'void2'] 

An:

dictionary[row['trigger']] = [row['void1'], row['void2']] 

Auch vorausgesetzt, dass Ihre CSV-Datei tatsächlich so aussieht:

Trigger;void1;void2 
    good;not good;not to good; 

statt dessen:

Trigger;void1;void 
    good;not good;not to good; 

Beachten Sie auch, dass Ihr erstes Beispiel die Einträge nicht speichern, wie Sie es wollten. Sie speichern einen String als Wörterbuchwert anstelle eines Arrays.

0

In Pandas können Sie eine Liste innerhalb des Indexoperators ([]) haben, um die gewünschten Spalten auszuwählen. Sie waren fast mit der row['void1', 'void2'] Syntax, Sie benötigen nur eine zweite Gruppe von Klammern:

dictionary[row['trigger']] = row[['void1', 'void2']].tolist() 

Sie dann tolist nennen, weil row[['void1', 'void2']] eine Serie Objekt anstelle einer einfachen Liste zurückzukehren.

Verwandte Themen