[파이썬] 다양한 포맷의 파일 병합 자동화
파이썬을 사용하여 다양한 형식의 파일을 병합하고 자동화하는 방법을 알아보겠습니다.
1. 필요한 라이브러리 설치
파이썬에서 파일 작업을 수행하기 위해 pandas
와 os
라이브러리를 설치해야 합니다. 다음 명령을 사용하여 두 라이브러리를 설치하세요.
pip install pandas
2. 파일 병합하기
2.1. CSV 파일 병합하기
CSV 파일은 쉼표로 구분된 데이터입니다. 다음 코드는 여러 개의 CSV 파일을 하나의 파일로 병합하는 예제입니다.
import pandas as pd
import os
# 병합할 CSV 파일들이 있는 디렉토리 경로
directory = 'path_to_directory'
# 디렉토리 내의 모든 CSV 파일 가져오기
csv_files = [file for file in os.listdir(directory) if file.endswith('.csv')]
# CSV 파일들을 읽어 데이터프레임으로 저장하기
dataframes = []
for file in csv_files:
filepath = os.path.join(directory, file)
df = pd.read_csv(filepath)
dataframes.append(df)
# 데이터프레임 병합하기
merged_df = pd.concat(dataframes)
# 결과 저장하기
merged_df.to_csv('merged.csv', index=False)
2.2. 엑셀 파일 병합하기
엑셀 파일은 여러 시트에 걸쳐 데이터를 저장할 수 있는 형식입니다. 다음 코드는 여러 개의 엑셀 파일을 하나의 파일로 병합하는 예제입니다.
import pandas as pd
import os
# 병합할 엑셀 파일들이 있는 디렉토리 경로
directory = 'path_to_directory'
# 디렉토리 내의 모든 엑셀 파일 가져오기
excel_files = [file for file in os.listdir(directory) if file.endswith('.xlsx')]
# 엑셀 파일들을 읽어 데이터프레임으로 저장하기
dataframes = []
for file in excel_files:
filepath = os.path.join(directory, file)
xls = pd.ExcelFile(filepath)
for sheet_name in xls.sheet_names:
df = pd.read_excel(filepath, sheet_name=sheet_name)
dataframes.append(df)
# 데이터프레임 병합하기
merged_df = pd.concat(dataframes)
# 결과 저장하기
merged_df.to_excel('merged.xlsx', index=False)
3. 자동화하기
파일 병합 작업을 자동화하기 위해 glob
라이브러리를 사용할 수 있습니다. 다음 코드는 특정 디렉토리 내의 모든 파일을 자동으로 찾아서 병합하는 예제입니다.
import pandas as pd
import glob
# 병합할 파일들이 있는 디렉토리 경로
directory = 'path_to_directory'
# 디렉토리 내의 모든 파일 가져오기
files = glob.glob(directory + '/*')
# 파일들을 읽어 데이터프레임으로 저장하기
dataframes = []
for file in files:
if file.endswith('.csv'):
df = pd.read_csv(file)
elif file.endswith('.xlsx'):
xls = pd.ExcelFile(file)
for sheet_name in xls.sheet_names:
df = pd.read_excel(file, sheet_name=sheet_name)
dataframes.append(df)
dataframes.append(df)
# 데이터프레임 병합하기
merged_df = pd.concat(dataframes)
# 결과 저장하기
merged_df.to_csv('merged.csv', index=False)
이제 파이썬으로 다양한 형식의 파일을 병합하고, 병합 작업을 자동화하는 방법을 알게 되었습니다. 이를 조정하여 개인 프로젝트나 업무에 활용할 수 있습니다.