코딩/pandas, matplotlib

[python+pandas] 여러 데이터프레임 하나의 엑셀 파일 내 각각 다른 시트에 저장하기

비스카이비전 2022. 5. 15. 23:55

2개의 데이터프레임이 있습니다. 이 데이터프레임들을 하나의 엑셀 파일(.xlsx)에 저장하려고 하는데, 하나는 sheet1에 담고 싶고, 하나는 sheet2에 담고 싶습니다. 

 

이런 경우에는 pandas의 ExcelWriter 함수를 활용하면 됩니다. 바로 간단한 예제 코드로 어떻게 하면 되는지 살펴보시죠.  2022년 5월 15일 밤 11시 기준 프리미어리그 4위까지 랭킹과 라리가 4위까지의 랭킹을 각각 데이터프레임으로 만든 후에 엑셀 파일로 변환하는 코드입니다. 프리미어리그 순위는 sheet1에 저장되게 했고, 라리가 순위는 sheet2에 저장되게 했습니다.

 

import pandas as pd

data1_dict = {'이름': ['맨체스터 시티 FC', '리버풀 FC', '첼시 FC', '토트넘 홋스퍼 FC'],
              '순위': [1, 2, 3, 4],
              '승점': [89, 86, 70, 68]}

data2_dict = {'이름': ['레알 마드리드 CF', 'FC 바르셀로나', '클루브 아틀레티코 데 마드리드', '세비야 FC'],
              '순위': [1, 2, 3, 4],
              '승점': [84, 72, 67, 66]}


df1 = pd.DataFrame(data1_dict)
df1.set_index('순위', inplace=True)
df2 = pd.DataFrame(data2_dict)
df2.set_index('순위', inplace=True)


print(df1, '\n')
print(df2, '\n')

writer = pd.ExcelWriter("football_rank.xlsx")
df1.to_excel(writer, sheet_name="sheet1")
df2.to_excel(writer, sheet_name="sheet2")
writer.save()

 

위 코드를 실행하면 터미널에는 다음과 같은 내용이 출력됩니다. 

 

 

그리고 football_rank.xlsx라는 파일이 생성되었는데 열어보면 다음과 같이 sheet1에는 프리미어리그 순위가, sheet2에는 라리가 순위가 제대로 들어가 있는 것을 확인하실 수 있습니다.