Ich analysiere derzeit den Aktienkurs und verwende zu diesem Zeitpunkt einen Datenrahmen. Nach der Analyse unter verschiedenen Bedingungen dachte ich jedoch, es wäre besser, sie als Excel-Datei zu speichern, wenn ich sie anderen erkläre. Wenn ich jedoch versuche, pandas to_excel zu verwenden, erhalte ich neue Daten. Wenn Sie es schreiben möchten, wird es überschrieben. Das war ein Problem ...
Nach vielen Recherchen habe ich festgestellt, dass es gespeichert werden kann, ohne überschrieben zu werden, indem es mit [openpyxl] kombiniert wird (https://openpyxl.readthedocs.io/en/stable/tutorial.html, "openpyxl"). Daher möchte ich den Code als Memorandum behalten.
Die Versionen der verwendeten Pakete sind wie folgt.
Python 3.7 Pandas 0.25.1 openpyxl 3.0.0
Verwenden Sie in diesem Fall to_excel von pandas.
to_excel.py
import pandas as pd
with pd.ExcelWriter(file_path) as writer:
df.to_excel(writer, sheet_name=sheet_name)
Verwenden Sie in diesem Fall openpyxl, um es zu überschreiben.
to_excel.py
import openpyxl
from openpyxl.utils.dataframe import dataframe_to_rows
wb = openpyxl.load_workbook(file_path)
ws = wb[sheet_name]
for i, r in enumerate(dataframe_to_rows(df, header=False)):
if i == 0:
continue
ws.append(r)
wb.save(file_path)
Dieser Teil ist das Herzstück dieses Artikels, und ich habe ihn untersucht ...
to_excel.py
import openpyxl
from openpyxl.utils.dataframe import dataframe_to_rows
wb = openpyxl.load_workbook(file_path)
ws = wb.create_sheet(title=sheet_name)
ws.append(['Date', 'Open', 'Close', 'High', 'Low'])
for i, r in enumerate(dataframe_to_rows(df, header=False)):
if i == 0:
continue
ws.append(r)
wb.save(file_path)
Das obige ist, wie man jedes schreibt. Ich selbst habe den zweiten und dritten mit try-without geschrieben, aber vielleicht gibt es auch eine leicht verständliche Möglichkeit, die if-Anweisung zu unterteilen ...
Wenn ich einen neuen Weg finde, werde ich ihn hinzufügen und in einen neuen Artikel schreiben! Dann!
Recommended Posts