데이터 프레임 목록을 다중 시트 Excel 스프레드시트에 저장
데이터 프레임 목록을 하나의 Excel 스프레드시트로 내보내려면 어떻게 해야 합니까?
상태에 대한 문서:
메모들
기존 ExcelWriter 개체를 전달하는 경우 시트가 기존 워크북에 추가됩니다.이 기능을 사용하여 서로 다른 데이터 프레임을 하나의 워크북에 저장할 수 있습니다.
writer = ExcelWriter('output.xlsx')
df1.to_excel(writer, 'sheet1')
df2.to_excel(writer, 'sheet2')
writer.save()
이에 따라 다음과 같이 데이터 프레임 목록을 하나의 스프레드시트에 저장하는 기능을 작성할 수 있다고 생각했습니다.
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
개별적으로) 예외가 발생합니다(편집: 트레이스백 제거됨).
AttributeError: 'str' object has no attribute 'worksheets'
제가 전화를 잘못 걸었을 수도 있는데, 어떻게 해야 하나요?
당신은 판다를 사용해야 합니다.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)
데이터 프레임 사전을 사용하여 예제가 필요한 경우:
from pandas import ExcelWriter
def save_xls(dict_df, path):
"""
Save a dictionary of dataframes to an excel file,
with each dataframe as a separate page
"""
writer = ExcelWriter(path)
for key in dict_df.keys():
dict_df[key].to_excel(writer, sheet_name=key)
writer.save()
예:save_xls(dict_df = my_dict, path = '~/my_path.xls')
데이터 프레임에 지원되지 않는 문자 유형이 있는 경우 문제(유니코드가 포함된 Excel 파일 작성)가 발생할 수 있습니다.이를 극복하기 위해 아래와 같이 'xlsxwriter' 패키지를 사용할 수 있습니다.
아래 코드의 경우:
from pandas import ExcelWriter
import xlsxwriter
writer = ExcelWriter('notes.xlsx')
for key in dict_df:
data[key].to_excel(writer, key,index=False)
writer.save()
"불법 문자 오류"라는 오류가 발생했습니다.
작동한 코드:
%pip install xlsxwriter
from pandas import ExcelWriter
import xlsxwriter
writer = ExcelWriter('notes.xlsx')
for key in dict_df:
data[key].to_excel(writer, key,index=False,engine='xlsxwriter')
writer.save()
언급URL : https://stackoverflow.com/questions/14225676/save-list-of-dataframes-to-multisheet-excel-spreadsheet
'source' 카테고리의 다른 글
2차 활동에서 1차 활동으로 데이터를 전달하는 방법은? - Android (0) | 2023.08.30 |
---|---|
추가 방법 후 Jquery click 이벤트가 작동하지 않음 (0) | 2023.08.30 |
jQuery ajax 성공 오류 (0) | 2023.08.30 |
헤더 서명이 잘못되었습니다. Excel 문서에 Apache POI가 있는 IO 예외 (0) | 2023.08.25 |
당신은 아이패드에서 HTML5 비디오를 자동 재생할 수 있습니까? (0) | 2023.08.25 |