J'analyse actuellement le cours de l'action et j'utilise un dataframe à ce moment-là. Cependant, après avoir analysé dans diverses conditions, j'ai pensé qu'il serait préférable de l'enregistrer sous forme de fichier Excel lors de l'explication à d'autres. Cependant, lorsque j'essaye d'utiliser [to_excel] de pandas (https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_excel.html, "to_excel"), j'obtiens de nouvelles données. Si vous souhaitez l'écrire, il sera écrasé. C'était un problème ...
Après de nombreuses recherches, j'ai trouvé qu'il pouvait être sauvegardé sans être écrasé en le combinant avec openpyxl. J'aimerais donc garder le code sous forme de mémorandum.
Les versions des packages utilisés sont les suivantes.
Python 3.7 Pandas 0.25.1 openpyxl 3.0.0
Dans ce cas, utilisez to_excel de pandas.
to_excel.py
import pandas as pd
with pd.ExcelWriter(file_path) as writer:
df.to_excel(writer, sheet_name=sheet_name)
Dans ce cas, utilisez openpyxl pour l'écraser.
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)
Cette partie est au cœur de cet article, et je l'ai recherchée ...
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)
Ce qui précède est de savoir comment écrire chacun. J'ai moi-même écrit le deuxième et le troisième avec try-except, mais il y a peut-être aussi un moyen facile à comprendre de diviser l'instruction if ...
Si je trouve un nouveau moyen, je vais l'ajouter et l'écrire dans un nouvel article! Puis!
Recommended Posts