2017-09-10 4 views
0

Ich frage mich, wie Sie eine neue Pandas-Serie in einer CSV-Datei in einer anderen Spalte speichern. Angenommen, ich habe zwei csv-Dateien, die beide eine Spalte als 'A' enthalten. Ich habe eine mathematische Funktion bei ihnen ausgeführt und dann eine neue Variable als ein "B" erstellt.Pandas Data Frame in csv-Datei speichern

Zum Beispiel:

data = pd.read_csv('filepath') 

data['B'] = data['A']*10 

# and add the value of data.B into a list as a B_list.append(data.B) 

Das bis alle Zeilen des ersten und zweiten CSV-Datei zu lesen wurde fortgesetzt wird.

Ich möchte eine Spalte B in einem neuen Tabellenblatt aus beiden CSV-Dateien speichern. Zum Beispiel muss ich dieses Ergebnis:

colum1(from csv1)  colum2(from csv2)  
    data.B.value    data.b.value 

Mit diesem Code:

pd.DataFrame(np.array(B_list)).T.to_csv('file.csv', index=False, header=None) 

Ich werde nicht mein bevorzugtes Ergebnis erhalten.

Antwort

1

Da jede Spalte in einer Pandas DataFrame ein Pandas ist Series. Ihre B_list ist eigentlich eine Liste von Pandas Series, die Sie DataFrame() Konstruktor werfen können, dann transponieren (oder als @jezrael eine horizontale Fusion mit pd.concat(..., axis=1) zeigt)

finaldf = pd.DataFrame(B_list).T 
finaldf.to_csv('output.csv', index=False, header=None) 

Und soll csv verschiedene Reihen, ungleich Serie ist gefüllt mit NANs bei entsprechenden Zeilen.

+0

Ich bin neu in Python und Pandas :). Danke Leute für deine Hilfe. – Elham

2

Ich glaube, Sie brauchen concat Spalte von data1 mit Spalte von data2 zuerst:

df = pd.concat(B_list, axis=1) 
df.to_csv('file.csv', index=False, header=None) 
+0

Danke für Ihre Antwort, aber ich habe keine Daten1 und Daten2, Daten werden in meiner Schleife aktualisiert, bis alle CSV-Dateien gelesen werden. – Elham

+1

'data1' ist der Name von' Dataframe' 1 und 'data2' second Dataframe. – jezrael

+0

Ich habe auch 2 Datenrahmen nicht. Die ursprüngliche CSV-Datei wird durch eine neue Spalte B aktualisiert und in der Schleife wird diese Spalte jedes Mal aktualisiert. Ich möchte diese Spalte in einer neuen CSV-Datei speichern, bevor ich die Daten verliere. Vielleicht erkläre ich nicht, was ich meine. – Elham

Verwandte Themen