파이썬을 활용한 excel 데이터 합치기

2023년 11월 11일 by Coco___

    파이썬을 활용한 excel 데이터 합치기 목차
728x90
반응형

PYTHON 업무 자동화 

 

 

파이썬은 간단 명료하면서도 매우 유용하다

 

엑셀을 다루다 보면 많은 양의 데이터를 합칠 일이 많을 것이다. 

그럴 때 쓸 수 있는 간단한 Python 코드를 짜서, 업무 효율화를 진행시켜보자. 

 

 

1. Pandas 와 os 활용 

 

먼저 import를 이용하여 pandas 를 불러온 다음,

앞으로 pandas에서 사용할 수 있는 모든 기능을 사용한다는 것을 약어 pd로 선언하고자 as pd를 붙여주었다. 

 

그리고 excel 경로를 사용할 수 있는 기능을 추가하기 위해 import os도 적어준다. 


import pandas as pd
import os

 

2. 엑셀 파일 읽어오기 

 

이후, 읽어오고자 하는 엑셀 파일 경로를 지정해준다.

또한 결과 파일 경로를 적어넣어주어,  어떤 파일을 선택하고 어떤 파일로 결과를 낼지 경로를 입력해준다. 


directory_path = '폴더경로'
output_file_path = 'output.xlsx'

 

 

3. 빈 파일 리스트 만들기 

 

그리고 빈 데이터 프레임을 하나 만들어 엑셀 파일을 합치기 위한 공간을 만들어준다. 


combined_data = pd.DataFrame()

 

 

4. 데이터 작업 수행

 

 이제 메인 작업을 수행할 차례이다. 

첫번째 줄은 파일 이름이 .xlsx이라고 끝나는 경우에만 파일들을 list로 경로 저장을 한다. 

 

즉, 엑셀 확장자들만 데이터를 합치겠다는 의미이다. 

 

그리고 나서, 파일들이 xlsx로 끝나는 파일들만 데이터를 합치는 구문을 만들어 준다. 

for 이라는 구문으로 file path를 결정한 뒤, data를 읽어오고, 마지막으로 combined data로 정의 한 다음 concat이라는 함수로 데이터들을 합쳐주게 된다.

 

이때 axis가 1이냐 0이냐에 따라 합쳐지는 방식이 다른데,  1의 경우 옆으로 (열로) 0의 경우 밑으로 (행으로) 데이터가 합쳐진다는 점을 통해 다양하게 응용할 수 있을 것이다. 

 


xlsx_files = [f for f in os.listdir(directory_path) if f.endswith('.xlsx')]

for file in xlsx_files:
    file_path = os.path.join(directory_path, file)
    data = pd.read_excel(file_path)
    combined_data = pd.concat([combined_data, data], axis=1)

 

 

5. 결과물

 

 마지막으로는 결과 파일이다. 결과 파일 경로를 지정하여 반환할 수 있다. 


combined_data.to_excel(output_file_path, index=False)

 

 

6. 최종 코드 

 

전체 코드로 보면 다음과 같다. 하나하나 살펴보면 매우 간단하고 직관적으로 코드가 짜여져있기 때문에 

공부하면서 작성해봐도 괜찮을 결과물이 나올 것이다. 


import pandas as pd
import os

# 읽어올 엑셀 파일들이 있는 디렉토리 경로
directory_path = '폴더경로'

# 결과를 저장할 파일 경로
output_file_path = 'output.xlsx'

# 빈 데이터프레임을 생성하여 엑셀 파일을 하나로 합칠 준비
combined_data = pd.DataFrame()

# 디렉토리 내의 모든 XLSX 파일을 찾음
xlsx_files = [f for f in os.listdir(directory_path) if f.endswith('.xlsx')]

# 각 XLSX 파일을 순회하면서 데이터를 합침
for file in xlsx_files:
    file_path = os.path.join(directory_path, file)
    data = pd.read_excel(file_path)
    combined_data = pd.concat([combined_data, data], axis=1)

# 결과 데이터를 'output.xlsx' 파일로 저장
combined_data.to_excel(output_file_path, index=False)

 

 이 코드는 chat gpt에게 물어보았을 때 나온 코드이다. 

처음부터 코드를 짜기 어려울 수는 있으나, 이렇게 짜여진 코드를 읽어서 활용하는 것은 의외로 쉽다. 

 

그래서 이렇게 하나씩 작성해보면서 공부하는 것 역시 많은 도움이 될 것이다. 

파이썬을 통한 업무 자동화! 직접 수행해보자. 

728x90
반응형