파이썬을 통해서 엑셀을 저장할 경우가 많은데요.
오늘은 이 때 사용할 수 있는 여러 기능에 대해서 알아보겠습니다.
판다스 엑셀에 저장하기
판다스에서 엑셀에 저장할 때 여러 데이터 프레임을 각각의 시트에 넣어 하나의 파일로 저장하거나 이쁘게 하기 위해서 열 넓이를 조절해야 할 경우가 있을 때 사용할 수 있는 코드입니다.
writer를 통해서 순서대로 시트에 넣을 수 있는데요.
먼저 각각의 데이터 프레임(df1, df2)를 각각의 시트에 넣는 코드입니다. df.to_excel을 할 때 writer를 사용합니다.
with pd.ExcelWriter(파일명.xlsx) as writer:
# use to_excel function and specify the sheet_name and without index
df1.to_excel(writer, sheet_name="1번시트", index=True)
df2.to_excel(writer, sheet_name="2번시트", index=True)
그리고 이 때 약간의 팁이 있는데요. 아래처럼 시트를 추가해서 넣는 방법도 있습니다.
# 최초 생성 이후 mode는 append; 새로운 시트를 추가합니다.
if not os.path.exists('output.xlsx'):
with pd.ExcelWriter('output.xlsx', mode='w', engine='openpyxl') as writer:
df.to_excel(writer, index=False)
else:
with pd.ExcelWriter('output.xlsx', mode='a', engine='openpyxl') as writer:
df.to_excel(writer, index=False)
판다스 자습서는 아래와 같습니다.
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.ExcelWriter.html
그리고 이 때 시트의 옵션을 설정할 수 있는데요. 워크시트의 열 넓이 및 서식 지정을 할 수 있습니다.
예1) B열 ~ E 열 넓이 변경
ws.set_column(1, 4, 50)
ws.set_column('B:E', 50)
예2) B열 ~ E 열 넓이 및 서식 변경
ws.set_column(1, 4, 50, format_bold)
예3) B열 ~ E 열 넓이 변경없이 서식만 변경
ws.set_column('B:E', None, format_bold)
with pd.ExcelWriter(파일명.xlsx) as writer:
# use to_excel function and specify the sheet_name and without index
df1.to_excel(writer, sheet_name="1번시트", index=True)
ws = writer.sheets['1번시트'] ## 칼럼 폭 조절
ws.set_column(0, 0, 5)
ws.set_column(1, 1, 25)
ws.set_column(3, 3, 12)
ws.set_column(4, 4, 25)
df2.to_excel(writer, sheet_name="2번시트", index=True)
그리고 넓이는 순서대로 들어가게 됩니다.
ws.set.column에 번호를 넣고 마지막에 넓이를 넣으면 원하는 넓이로 조절됩니다.
그럼 잘 사용하시기 바랍니다.
'Programming > Python' 카테고리의 다른 글
파이썬 엑셀 저장 후 내용에 문제가 있습니다. 이 통합 문서의 내용을 최대한 복구하시겠습니까? 에러 해결하기 (0) | 2024.04.02 |
---|---|
파이썬 *로 트리 만들기 - Print 활용하기 (0) | 2024.03.21 |
파이썬 Request Timeout 설정하기 (0) | 2024.03.12 |
네이버 뉴스 API로 한번에 크롤링하기 (0) | 2024.03.11 |
파이썬 텔레그램 botfather 챗봇(chatbot) 설정하기 (0) | 2024.03.05 |