У меня есть один гигантский CSV-файл, который содержит внутридневные данные о запасах за год, поскольку он слишком велик для анализа, я хотел бы обработать данные заранее.
Я хочу разбить его на 12 файлов Excel (12 месяцев), в каждом из которых будет 28-31 лист / вкладка / страница, содержащая эти внутридневные данные на эту дату. Поэтому я подготовил эти файлы Excel с именами Stock-01, Stock-02 до Stock-12, в данный момент они пусты, ожидая добавления данных моим кодом Python.
Я использую код ниже после того, как я использую read_csv:
for index in indexs:
name = "Stock_" + index.strftime("%y-%m-%d")
work = data[data.index.date == index].copy()
columnsTitles = ['Volume','Open','High','Low','Close']
work = work.reindex(columns= columnsTitles)
filepath = "Stock-{}.xlsx".format(index.strftime("%m"))
writer = ExcelWriter(filepath, engine='openpyxl')
work.to_excel(writer, index = True, sheet_name=name)
writer.save()
writer.close()
del work
Мой подход заключается в том, что indexs содержит все даты, следовательно, проходит через индекс, я выбираю подготовленный файл Excel, добавляю лист с именем, используя дату (index), и копирую информационный кадр напрямую, используя простую функцию to_excel.
Однако в результате получается только один лист, и этот лист содержит данные о последней дате. (Одной из возможных причин может быть то, что программа создает новую рабочую книгу каждый раз, а не читает существующую рабочую книгу)
Подобный вопрос задается, но это работает на другом подходе. Я хотел бы написать фрейм данных напрямую, чтобы преуспеть, но в этом вопросе, используя xlsxwriter, мне кажется, что я не могу это сделать, поскольку он принимает только значение str.