JuJuKwakKwak

python) 2번의 내용과 10번의 내용 left join 하기 본문

Data Science/코드 관련 모음

python) 2번의 내용과 10번의 내용 left join 하기

jujukwakkwak 2022. 12. 8. 18:28

데이터 불러오기

import os
import pandas as pd

csv02_list = [] # 2번에 있는 파일들을 불러와 담는 리스트
f_name_list = [] # 2번에 있는 파일들의 이름들을 담는 리스트
for f_name in os.listdir('./2번'):
    if f_name.endswith('.csv'):
        f_name_list.append(f_name)
        csv_file02 = pd.read_csv(f'./2번/{f_name}', encoding='euc-kr')
        csv02_list.append(csv_file02)
        
csv10_list = [] # 10번에 있는 파일들을 불러와 담는 리스트
for f_name in os.listdir('./10번'):
    if f_name.endswith('.csv'):
        csv_file10 = pd.read_csv(f'./10번/{f_name}', encoding='euc-kr')
        csv10_list.append(csv_file10)

 

left join 하기

df_left_list = [] # 조인한 DataFrame 담는 리스트
for i in range(len(csv02_list)):
    try:
        df_left_list.append(pd.merge(csv02_list[i], csv10_list[i//12],
                                     left_on=['emdnm', 'fcltynm'], right_on=['emdnm', 'fcltynm'],
                                     how='left'))
    except:
        df_left_list.append(pd.merge(csv02_list[i], csv10_list[i//12],
                                     left_on=['emdnm', 'fcltynm'], right_on=['emdNm', 'fcltyNm'],
                                     how='left'))

 

컬럼명 정리하기

# 남는 컬럼 리스트
f_col = ['수정할 컬럼명 리스트']
f_col_2 = ['수정할 컬럼명 리스트']
f_col_2_2 = ['수정할 컬럼명 리스트']

df_left_list_2 = [] # 특정 열에 해당되는 값만 추출한 DataFrame을 담는 리스트
for i, csv in enumerate(df_left_list):
    try:
        df_left_list_2.append(csv[f_col])
    except:
        try:
            df_left_list_2.append(csv[f_col_2])
        except:
            df_left_list_2.append(csv[f_col_2_2])
            
f_col_3 = ['수정할 컬럼명 리스트']

df_left_list_3 = [] # 열 이름 수정하고 담는 리스트
for i, csv in enumerate(df_left_list_2):
    csv.columns = f_col_3
    df_left_list_3.append(csv)

 

하나씩 csv로 저장하기

for i, csv in enumerate(df_left_list_3):
    csv.to_csv(f'./조인/{f_name_list[i][:-6]}_11.csv', encoding='euc-kr', index=False)