Jak mogę wyeksportować listę ramek danych do jednego arkusza kalkulacyjnego Excel?
Dokumenty dotyczące to_excel
stanu:
Uwagi
Jeśli przekazujesz istniejący obiekt ExcelWriter, arkusz zostanie dodany do istniejącego skoroszytu. Może to służyć do zapisywania różnych ramek danych w jednym skoroszycie
writer = ExcelWriter('output.xlsx')
df1.to_excel(writer, 'sheet1')
df2.to_excel(writer, 'sheet2')
writer.save()
Po tym pomyślałem, że mógłbym napisać funkcję, która zapisuje listę DataFrames w jednym arkuszu kalkulacyjnym w następujący sposób:
from openpyxl.writer.excel import ExcelWriter
def save_xls(list_dfs, xls_path):
writer = ExcelWriter(xls_path)
for n, df in enumerate(list_dfs):
df.to_excel(writer,'sheet%s' % n)
writer.save()
Jednak (z listą dwóch małych ramek DataFrame, z których każda może być zapisywana to_excel
indywidualnie), zgłaszany jest wyjątek (Edycja: usunięto śledzenie) :
AttributeError: 'str' object has no attribute 'worksheets'
Prawdopodobnie nie dzwonię ExcelWriter
poprawnie, jak mam to zrobić?
ExcelWriter
jako menedżera kontekstu.with ExcelWriter(xls_path) as writer: df.to_excel(writer, sheet_name)
'sheet%s' % n
? Co to robi i jak działa?Jeśli ktoś potrzebuje przykładu, jak to zrobić ze słownikiem ramek danych:
from pandas import ExcelWriter def save_xls(dict_df, path): """ Save a dictionary of dataframes to an excel file, with each dataframe as a seperate page """ writer = ExcelWriter(path) for key in dict_df: dict_df[key].to_excel(writer, key) writer.save()
przykład:
save_xls(dict_df = my_dict, path = '~/my_path.xls')
źródło
'%s' % key
? Czy mógłbyś to wyjaśnić? Dzięki!