반응형
데이터 프레임 목록을 다중 시트 Excel 스프레드 시트에 저장
DataFrame 목록을 하나의 Excel 스프레드 시트로 내보내려면 어떻게해야합니까? 상태
문서 to_excel
:
참고
기존 ExcelWriter 개체를 전달하면 시트가 기존 통합 문서에 추가됩니다. 하나의 통합 문서에 다른 DataFrame을 저장하는 데 사용할 수 있습니다.
writer = ExcelWriter('output.xlsx')
df1.to_excel(writer, 'sheet1')
df2.to_excel(writer, 'sheet2')
writer.save()
이에 따라 다음과 같이 DataFrame 목록을 하나의 스프레드 시트에 저장하는 함수를 작성할 수 있다고 생각했습니다.
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()
그러나 (각각 to_excel
개별적으로 저장할 수있는 두 개의 작은 DataFrame 목록이 있는 경우) 예외가 발생합니다 (Edit : traceback removed) .
AttributeError: 'str' object has no attribute 'worksheets'
아마도 내가 ExcelWriter
제대로 전화를 걸지 않은 것 같습니다. 어떻게해야합니까?
pandas 자체 ExcelWriter
클래스를 사용해야합니다 .
from pandas import ExcelWriter
# from pandas.io.parsers import ExcelWriter
그러면 save_xls
함수가 예상대로 작동합니다.
def save_xls(list_dfs, xls_path):
with ExcelWriter(xls_path) as writer:
for n, df in enumerate(list_dfs):
df.to_excel(writer,'sheet%s' % n)
writer.save()
누군가가 데이터 프레임 사전으로이를 수행하는 방법에 대한 예제가 필요한 경우 :
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()
예: save_xls(dict_df = my_dict, path = '~/my_path.xls')
참고 URL : https://stackoverflow.com/questions/14225676/save-list-of-dataframes-to-multisheet-excel-spreadsheet
반응형
'development' 카테고리의 다른 글
호출을 사용하고 Javascript에서 적용하는 컨텍스트? (0) | 2020.11.08 |
---|---|
HttpResponseMessage 헤더에 Content-Type 헤더를 설정할 수 없습니까? (0) | 2020.11.08 |
memcmp (a, b, 4)가 때때로 uint32 비교에만 최적화되는 이유는 무엇입니까? (0) | 2020.11.08 |
왜 '#! / usr / bin / env python'이 '#! / usr / bin / python'보다 더 정확할까요? (0) | 2020.11.08 |
MATLAB에서 구조체 필드 이름 반복 (0) | 2020.11.08 |