Python Pandas - Wie schreiben in eine bestimmte Spalte in einem Excel-Sheet
Ich habe Probleme mit der Aktualisierung ein Excel-Blatt mit den pandas durch das schreiben neuer Werte. Ich habe bereits einen bestehenden Rahmen df1, der liest die Werte aus MySheet1.xlsx. so muss dieser entweder einen neuen dataframe oder irgendwie zu kopieren und überschreiben Sie die vorhandene.
Die Kalkulationstabelle in diesem format:
Habe ich eine python-Liste: values_list = [12.34, Anteil von 17,56, 12.45]. Mein Ziel ist das einfügen der Liste Werte unter Col_C header vertikal. Es ist derzeit das überschreiben der gesamten dataframe horizontal, ohne die Bewahrung der aktuellen Werte.
df2 = pd.DataFrame({'Col_C': values_list})
writer = pd.ExcelWriter('excelfile.xlsx', engine='xlsxwriter')
df2.to_excel(writer, sheet_name='MySheet1')
workbook = writer.book
worksheet = writer.sheets['MySheet1']
Wie man dieses Ergebnis? Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Unten habe ich ein vollständig reproduzierbares Beispiel, wie Sie gehen können über eine bestehende zu ändern .xlsx-Arbeitsmappe mit pandas und die openpyxl Modul (link zu Openpyxl Docs).
Zunächst zu Demonstrationszwecken erstelle ich eine Arbeitsmappe aufgerufen test.xlsx:
Dies ist die Erwartete Ausgabe an dieser Stelle:
In diesem zweiten Teil laden wir die vorhandene Arbeitsmappe ('test.xlsx') und ändern Sie die Dritte Spalte mit verschiedenen Daten.
Dies ist der Erwartete output am Ende:
cell = 'C%d' % (index + 2)
es löst auf die Zelle verweisen, wenn index = 0 ist, danncell = 'C2'
und ich glaube nicht, sollten Sie das ändern. Sie könnte sich ändernws[cell] = row[0]
zuws[cell] = row['Col_C']
und es würde funktionieren. Hoffentlich ist Ihre Frage damit beantwortet.pandas.read_excel()
Auswahl einer bestimmten Spalte nach Namen oder Ort.Meiner Meinung nach, die einfachste Lösung ist zu Lesen, die excel als panda dataframe, und ändern Sie es, und schreiben Sie als excel. So zum Beispiel:
Kommentare:
Import pandas as pd.
Lesen Sie die excel-Blatt in pandas Daten-frame genannt.
Nehmen Sie Ihre Daten, die in einer Liste format, und weisen Sie auf die Spalte, die Sie möchten. (nur stellen Sie sicher, dass die Längen gleich sind). Speichern Sie Ihre Daten-frame als excel -, entweder überschreiben Sie die alte excel oder erstellen Sie eine neue.
Code: