본문 바로가기
분석하는 마케터

[CSV 다루기] Python으로 파일 첫 행 추가하기 (feat.Pandas)

by TREBOR 2021. 1. 14.

[CSV 다루기] Python으로 파일 첫 행 추가하기 (feat.Pandas)

엑셀, csv 파일을 많이 다루다 보면, 

파일의 형태를 전체저긍로 다 변경해야 해서 여러 개의 csv 파일을 손봐야 할 때가 있다.

사실 하나 하나 다 열어서 하면 그만한 노동이 없고 ㅠㅠ 

심지어 행이 너무 길어서 엑셀의 허용 용량을 초과할 때에는

엑셀로 모든 행을 정상적으로 로드하지 못할 때도 있다.

 

그럴 때! 파이썬 python 으로 데이터를 간단히 바꿔주기.

여러 파일의 첫 행에 같은 내용을 추가해주어야 할 때는 (컬럼 명을 추가해 준다고 생각하면 됨)

한 폴더에 몰아놓고, 그 폴더에 있는 모든 csv파일 다 바꿔줘! 라고 명령하면 편하다.

 

# 먼저 Pandas와, 디렉토리 불러오는 OS를 Import한다.
import pandas as pd
import os

# 첫번째 방법
filePath = 'C://Users//'  # 폴더 주소 입력. 이 때 마지막에 //를 입력한다(windows기준임)
fileAll = os.listdir(filePath)
fileCsv = [filePath + file[:-4] for file in fileAll if file.endswith('.csv')] # CSV에만 적용하라는 의미

for file in fileCsv:
    df = pd.read_csv(file + '.csv')
    df.columns = ['추가할 컬럼명']
    df2 = df.set_index('추가한 컬럼명 중 첫번째') # 별도 Index 없이 첫 column을 인덱스화 하겠다.
    df2.to_csv(file + '_done.csv') # 처리 완료된 파일명 뒤에 _done.csv가 추가되어 같은 폴더에 저장
    

# 두번째 방법
filePath = 'C://Users//'  # 폴더 주소 입력. 이 때 마지막에 //를 입력한다(windows기준임)
fileAll = os.listdir(filePath)
fileCsv = [filePath + file[:-4] for file in fileAll if file.endswith('.csv')] # CSV에만 적용하라는 의미

for file in fileCsv:
    df = pd.read_csv(file + '.csv')
    df.columns = ['추가할 컬럼명']
    df.to_csv(file + '_done.csv', index=False) # 인덱스 없이 저장하겠다는 의미이며, 처리 완료된 파일명 뒤에 _done.csv가 추가되어 같은 폴더에 저장

 

 

첫번째 방법과 두번쨰 방법이 있는데,

개인적으로 두번째 방법을 더 선호함! 더 간단하고 직관적이다.

 

 

 

 

 

댓글