파이썬으로 엑셀하기 - 엑셀파일 하나로 합치기

개인적으로 업무에서 파이썬을 활용하는 것은 주로 단순 업무의 반복을 자동화하기 위해서가 많다.

오늘은 그래서 파이썬을 활용해서 엑셀 파일을 합치는 방법을 알아보겠습니다.

회사에서 6월 경에는 상반기가 마무리되기 때문에 각종 자료 요청이 오는데요.

그래서 지난 통계를 제출해 달라는 요청이 옵니다.

그래서 각종 통계를 합쳐야하는 경우가 많은데요.

오늘은 이런 통계 엑셀을 하나의 파일로 합치는 방법을 알아보겠습니다.

파이썬으로 엑셀 합치기

오늘 파이썬에서 주로 활용할 라이브러리는 glob과 append입니다.

그 외의 엑셀과 판다스는 저번 포스팅에서 설명하였으니 참고하시기 바랍니다.

2022.05.31 - [Tip & Tech/Python] - 파이썬으로 엑셀하기 - sumif 함수 구현

 

파이썬으로 엑셀하기 - sumif 함수 구현

안녕하세요 오늘은 파이썬으로 sumif 함수를 구현하는 방법을 알아보겠습니다. 파이썬으로 SUMIF 함수 구현하기 먼저 파이썬으로 sumif함수를 구현하기 위해서는 pandas 패키지 설치가 필요합니다.

dorudoru.tistory.com

먼저 정말 단순하게 동일한 포맷의 엑셀을 합치는 것은 append를 통해서 가능합니다.

기본적으로 시트의 칼럼이 동일하다면 아래처럼 append를 활용해서 단순 복사 붙여넣기가 가능합니다.

import pandas as pd


df0 = pd.read_excel("./Down/1월_study.xlsx")
df1 = pd.read_excel("./Down/2월_study.xlsx")
df2 = pd.read_excel("./Down/3월_study.xlsx")
df3 = pd.read_excel("./Down/4월_study.xlsx")
df4 = pd.read_excel("./Down/5월_study.xlsx")


merge_df = pd.DataFrame()

merge_df = merge_df.append(df0)
merge_df = merge_df.append(df1)
merge_df = merge_df.append(df2)
merge_df = merge_df.append(df3)
merge_df = merge_df.append(df4)


merge_df.to_excel('./Down/연간학습.xlsx')

하지만 append는 수직으로만 결합이 가능한데요.

수평으로도 결합을 해야한다면 concat을 활용하시면 됩니다.

concat은 샘플코드로 알아보겠습니다.

import pandas as pd

df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],'B': ['B0', 'B1', 'B2'],'C': ['C0', 'C1', 'C2'],'D': ['D0', 'D1', 'D2']},index=[0, 1, 2])

df2 = pd.DataFrame({'A': ['A3', 'A4', 'A5'],'B': ['B3', 'B4', 'B5'],'C': ['C3', 'C4', 'C5'],'D': ['D3', 'D4', 'D5']},index=[3, 4, 5])

df_total = pd.concat([df1, df2])

print(df_total)

이렇게 concat을 활용해서도 합칠수 있습니다.

아래의 설명은 판다스 치트 시트에서 참고하였습니다.

또한 보다 자세한 설명은 판다스 자습서에서 확인하실 수 있습니다.

 

Merge, join, concatenate and compare — pandas 1.4.2 documentation

The concat() function (in the main pandas namespace) does all of the heavy lifting of performing concatenation operations along an axis while performing optional set logic (union or intersection) of the indexes (if any) on the other axes. Note that I say

pandas.pydata.org

이 때 현재는 폴더를 제가 수동으로 지정해서 파일을 불러왔는데요.

glob함수를 통해서 해당 폴더의 파일을 다 불러올 수 있습니다.

간단하게 코드로 실행해보면, 아래처럼 원하는 폴더의 파일을 불러올 수 있습니다.

import pandas as pd    
import glob  

file_list = glob.glob('C:\python\down\study_*.xlsx')
print(file_list)

실제로 down 폴더에는 아래처럼 엑셀이 4개 있었고, 파이썬에서 잘 불러옴을 알 수 있습니다.

그리고 이를 활용해서 해당폴더에 있는 엑셀을 모두 더해서, 연간학습.xlsx로 출력할 것인데요.

아래와 같은 간단한 코드를 통해서 실행할 수 있습니다.

import pandas as pd    
import glob  

merge_df = pd.DataFrame()  
for f in glob.glob('C:\python\down\study_*.xlsx'):
   
    df = pd.read_excel(f)
    merge_df = merge_df.append(df, ignore_index=True)


print(merge_df)

merge_df.to_excel('./Down/연간학습.xlsx')

down폴더 아래에 있는 모든 엑셀이 합쳐져서 연간학습.xlsx로 합쳐졌습니다.

실제로 파일을 열어보면 개별 달에 있는 데이터가 잘 합쳐진 것을 확인할 수 있습니다.

이렇게 단순한 엑셀 작업을 반복해야 한다면, 이를 파이썬 코드를 통해서 쉽게 할 수 있는데요.

이렇게 파이썬을 활용하면 다양한 엑셀 작업을 손쉽게 할 수 있는데요.

잘 활용하시기 바랍니다.

728x90

해당 블로그에서 발행되는 콘텐츠 중 일부 글에는 제휴 및 홍보 관련 링크가 포함될 수 있으며, 파트너스 활동의 일환으로 일정액의 수수료를 받을 수 있습니다.