2017-12-01 1 views
0

Ich brauche etwas Hilfe mit dem folgenden. Ich benutze derzeit Python Pandas, um jeden Tag eine riesige Tabelle zu öffnen (diese Tabelle ist ein Bericht, daher sind die Daten in der Tabelle jeden Tag anders). Pandas Dataframe ermöglicht es mir, die Daten schnell zu knacken und eine endgültige Ausgabetabelle zu erzeugen, mit viel weniger Daten als die ursprüngliche Excel-Datei. Jetzt, am Tag 1, müsste ich dieses Ausgabedatenfeld (3 Zeilen 10 Spalten) zu einem neuen Excel-Blatt hinzufügen (sagen wir Blatt 1).Einen Pandas-Datenrahmen an eine vorhandene Excel-Tabelle anhängen

Am Tag 2 müsste ich die neue Ausgabe des Datenrahmens nehmen und an das vorhandene Blatt 1 anhängen. Am Ende von Tag 2 hätte die Tabelle in Blatt1 also 6 Zeilen und 10 Spalten.

Am Tag 3, die gleiche Sache. Ich werde mein Python-pnadas-Tool starten, Daten aus dem Excel-Bericht lesen, einen Ausgabedatenrahmen 3x10 generieren und ihn wieder an meine Excel-Datei anhängen.

Ich kann keine Möglichkeit finden, an eine vorhandene Excel-Tabelle anzuhängen. Kann jemand helfen? Vielen Dank im Voraus, Andrea

+2

Dies ist tatsächlich mehrere Aufgaben: Lesen von Daten aus einer Excel-Datei, Daten anhängen, um es, und dann das Ergebnis in eine Excel-Datei schreiben. Um was bitten Sie, und was haben Sie versucht? – Acccumulation

+0

Ich kann Daten aus einer Excel-Datei lesen und mit Pandas ausarbeiten. Ich weiß nicht, wie ich es am Ende der aktuellen Excel-Tabelle speichern soll. Danke – Andrea

+0

Wie gesagt, das Anhängen sollte in Pandas vorkommen: Sie lesen die Excel-Tabelle in einen Datenrahmen, hängen * an den Datenrahmen * an und ersetzen dann die Excel-Tabelle durch den angehängten Datenrahmen. Sie hängen nicht direkt an die Excel-Tabelle an. – Acccumulation

Antwort

0

Wenn Sie openpyxl's utilities for dataframes verwenden, dann sollten Sie in der Lage sein, alles, was Sie brauchen, mit der vorhandenen Arbeitsmappe zu tun, vorausgesetzt, dies passt in den Speicher.

from openpyxl import load_workbook 
from openpyxl.utils.dataframe import dataframe_to_rows 
wb = load_workbook("C:\Andrea\master_file.xlsx") 
ws = wb[SHEETNAME] 
for row in dataframe_to_rows(dt_today): 
    ws.append(row) 
+0

Also im Grunde, wenn ich einen kleinen Pandas Datenrahmen habe, gibt es keine Möglichkeit, es am Ende der Tabelle anzuhängen? Bedeutet, es gibt keine Möglichkeit, eine Tabelle zu öffnen, lesen Sie, wie viele Zeilen haben einen Wert in Spalte A und fügen Sie den Datenrahmen am Ende? ... – Andrea

+0

Woher hast du diesen Eindruck? 'ws.append()' fügt immer Zeilen zu einem vorhandenen Arbeitsblatt hinzu. –

+0

Ok, tut mir leid, wenn meine Fragen zu einfach sind, aber ich verstehe es nicht ganz. Ich habe einen Pandas Datenframe namens df_today, der 3 Zeilen und 8 Spalten hat. Ich habe eine Kalkulationstabelle in C: \ Andrea \ master_file.xlsx könnte jemand den Code teilen, den ich haben muss, um df_today am Ende meiner Tabelle innerhalb der mater_file.xlsls hinzuzufügen? Danke – Andrea

Verwandte Themen