Python / Pandas / 엑셀 파일들을 CSV로 변환하고 병합하는 방법

시트가 하나인 엑셀 파일을 CSV로 변환

import pandas as pd

df = pd.read_excel( "excel_1.xlsx" )
df.to_csv(
  "csv_1.csv",
  index = False,
  encoding = "utf-8-sig",
)

시트가 여러 개인 엑셀 파일을 CSV로 변환

import pandas as pd

xlsx = pd.ExcelFile( "excel_2.xlsx" )
dfs = []

for sheet in xlsx.sheet_names:
  df = pd.read_excel( xlsx, sheet_name = sheet )
  dfs.append( df )

result = pd.concat( dfs )
result.to_csv( "csv_2.csv", index = False, encoding = "utf-8-sig" )

폴더 안의 모든 엑셀 파일을 CSV로 변환

import pandas as pd
import glob

for excel_file in glob.glob( "*.xlsx" ) :
  print( excel_file )
  xlsx = pd.ExcelFile( excel_file )
  dfs = []
  for sheet in xlsx.sheet_names:
    df = pd.read_excel(
      xlsx,
      sheet_name = sheet
    )
    dfs.append( df )
  result = pd.concat( dfs )
  result.to_csv(
    excel_file + ".csv",
    index = False,
    encoding = "utf-8-sig"
  )

두 개의 CSV 파일 합치기

import pandas as pd

df1 = pd.read_csv( "csv_1.csv" )
df2 = pd.read_csv( "csv_2.csv" )

result = pd.concat(
  [ df1, df2 ],
  ignore_index = True
)
result.to_csv(
  "merge_1.csv",
  index = False
)

폴더 안의 모든 CSV 파일 합치기

import pandas as pd
import glob

files = glob.glob( "*.csv" )
df = pd.concat(
  [ pd.read_csv( f ) for f in files ],
  ignore_index = True
)

df.to_csv(
  "merge_2.csv",
  index = False
)