Append bestehende excel-Tabelle mit neuen dataframe mit python pandas
Momentan habe ich diesen code. Es funktioniert perfekt.
Ist es eine Schleife durch excel-Dateien in einem Ordner,
entfernt die ersten 2 Zeilen, dann speichert diese als einzelne excel-Dateien,
und es speichert auch die Dateien in der Schleife als Datei angehängt.
Derzeit die angehängte Datei überschreibt die vorhandene Datei jedes mal, wenn ich den code ausführen.
Muss ich anfügen die neuen Daten an der Unterseite des bereits vorhandene excel-Blatt ('master_data.xlsx)
dfList = []
path = 'C:\\Test\\TestRawFile'
newpath = 'C:\\Path\\To\\New\\Folder'
for fn in os.listdir(path):
# Absolute file path
file = os.path.join(path, fn)
if os.path.isfile(file):
# Import the excel file and call it xlsx_file
xlsx_file = pd.ExcelFile(file)
# View the excel files sheet names
xlsx_file.sheet_names
# Load the xlsx files Data sheet as a dataframe
df = xlsx_file.parse('Sheet1',header= None)
df_NoHeader = df[2:]
data = df_NoHeader
# Save individual dataframe
data.to_excel(os.path.join(newpath, fn))
dfList.append(data)
appended_data = pd.concat(dfList)
appended_data.to_excel(os.path.join(newpath, 'master_data.xlsx'))
Dachte ich, dies wäre eine einfache Aufgabe, aber ich denke mal nicht.
Ich denke, dass ich brauchen, um in der master_data.xlsx Datei als ein dataframe, dann entsprechen die index mit den neuen Daten angehängt, und speichern Sie es wieder heraus. Oder vielleicht gibt es einen einfacheren Weg. Jede Hilfe ist willkommen.
Nein, nicht ganz, ich bin nicht zu retten versucht neue Blätter, nur versuchen, fügen Sie die vorhandenen Blatt.
InformationsquelleAutor brandog | 2016-06-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine helper-Funktion für das anfügen von DataFrame zu bestehenden Excel-Datei:
Beispiele für eine Nutzung...
Alte Antwort: es ermöglicht Ihnen zu schreiben mehrere DataFrames in eine neue Excel-Datei.
Können Sie
openpyxl
- Motor in Verbindung mitstartrow
parameter:c:/temp/test.xlsx:
PS: Sie können auch festlegen möchten
header=None
wenn Sie nicht wollen, um doppelte Spaltennamen...UPDATE: Sie können auch prüfen wollen diese Lösung
dann benötigen Sie
header=None
und Sie müssen zu zählen, die aktuelle Anzahl der Zeilen in der excel-Datei und verwenden Sie es wie diese:startrow=curr_count+1
OH, Hoppla! Ich vermisse Lesen. Ja, das beantwortet meine Frage perfekt! Dank
Eigentlich war ich nur auf Sie zu arbeiten und feststellen, dass Sie korrekt sind. Ich brauche die startrow = curr_count+1, ich habe Probleme bei der Umsetzung, dass, obwohl, würde Sie Bearbeiten können, um die obige Antwort zu verwenden, die Methode?
Wenn die excel-Datei sehr groß ist, möchte ich nur anfügen , was soll ich tun ?
InformationsquelleAutor MaxU