Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 Pandas – 기존 CSV 파일을 활용해 여러 개의 CSV 파일로 분할하기

Pandas를 사용하면 하나의 CSV 파일을 특정 기준에 따라 여러 개의 파일로 손쉽게 분할할 수 있습니다. 이 글에서는 기존 CSV 파일을 불러온 뒤, groupby() 함수를 이용해 차종(Car)별로 데이터를 그룹화하고 각각 별도의 CSV 파일로 저장하는 방법을 단계별로 살펴보겠습니다.

예제 입력 파일

다음과 같은 CSV 파일이 있다고 가정해 보겠습니다.

SalesRecords.csv

파이썬 Pandas – 기존 CSV 파일을 활용해 여러 개의 CSV 파일로 분할하기

이 파일에서는 차종 이름을 기준으로 BMW.csv, Lexus.csv, Jaguar.csv 총 3개의 CSV 파일을 생성하는 것이 목표입니다.

1단계: 입력 CSV 파일 읽기

먼저 pandas의 read_csv() 함수를 사용해 원본 파일을 DataFrame으로 불러옵니다.

dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\SalesRecords.csv")

2단계: groupby()로 차종별 CSV 파일 생성

groupby()를 활용하면 'Car' 열의 값을 기준으로 데이터를 그룹화할 수 있습니다. 각 그룹을 반복문으로 순회하면서 to_csv()로 개별 파일에 저장하면 됩니다.

for (car), group in dataFrame.groupby(['Car']):
   group.to_csv(f'{car}.csv', index=False)

여기서 index=False 옵션은 DataFrame의 인덱스가 CSV 파일에 불필요한 추가 열로 저장되지 않도록 합니다.

전체 코드 예제

아래는 지금까지의 과정을 모두 포함한 완성된 코드입니다.

import pandas as pd

# 원본 CSV 파일을 DataFrame으로 읽기
dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\SalesRecords.csv")
print("\n입력 CSV 파일 = \n", dataFrame)

# 'Car' 열의 차종 이름을 기준으로 groupby하여 CSV 생성
for (car), group in dataFrame.groupby(['Car']):
   group.to_csv(f'{car}.csv', index=False)

# 생성된 CSV 파일들의 내용 확인
print("\nCSV 1 = \n", pd.read_csv("BMW.csv"))
print("\nCSV 2 = \n", pd.read_csv("Lexus.csv"))
print("\nCSV 3 = \n", pd.read_csv("Jaguar.csv"))

실행 결과

위 코드를 실행하면 다음과 같은 출력이 나타납니다.

입력 CSV 파일 =
    Unnamed: 0     Car   Date_of_Purchase
0           0      BMW        10/10/2020
1           1    Lexus        10/12/2020
2           2      BMW        10/17/2020
3           3   Jaguar        10/16/2020
4           4   Jaguar        10/19/2020
5           5      BMW        10/22/2020

CSV 1 =
    Unnamed: 0     Car   Date_of_Purchase
0           0      BMW        10/10/2020
1           2      BMW        10/17/2020
2           5      BMW        10/22/2020

CSV 2 =
    Unnamed: 0     Car   Date_of_Purchase
0           1    Lexus        10/12/2020

CSV 3 =
    Unnamed: 0     Car   Date_of_Purchase
0           3   Jaguar        10/16/2020
1           4   Jaguar        10/19/2020

실행 결과에서 확인할 수 있듯이 총 3개의 CSV 파일이 생성되었으며, 각 파일에는 해당 차종에 해당하는 행만 포함되어 있습니다. 즉, BMW.csv에는 BMW 관련 데이터가, Lexus.csv에는 Lexus 데이터가, Jaguar.csv에는 Jaguar 데이터가 각각 정리되어 저장됩니다.

생성된 파일의 위치

생성된 CSV 파일들은 프로젝트 디렉터리에 저장됩니다. PyCharm IDE에서 실행한 경우 세 개의 파일은 다음과 같은 경로에 생성됩니다.

C:\Users\amit_\PycharmProjects\pythonProject\BMW.csv
C:\Users\amit_\PycharmProjects\pythonProject\Jaguar.csv
C:\Users\amit_\PycharmProjects\pythonProject\Lexus.csv