삽질/개발,엔지니어링

python pandas로 csv 읽기

maengis 2023. 7. 21. 18:14

* 결국엔 하자가 많아서 php fgetcsv로 처리함.

 

천만 건 정도 되는 데이터를 csv로 받아서 json으로 변경 해서 카프카에 전송 해야 했다.

 

import csv를 썼는데, 두 줄을 한 줄로 읽음...........

 

다른 언어 쓸까 하다가 이미 코드 짜놓은 게 아까워서 파이썬 물고 늘어지기로 하고 pandas로 함.

 

import pandas

...

csv_data = pandas.read_csv(csv_file, names=cols, low_memory=False)
data = csv_data.to_dict()

cols = ["no","reception","user_id","inquiry_type1","content","write_datetime","update_datetime","write_gw_id","write_gw_name","del_flag","notice_flag"]

for i in data['no']:
    row = {
        'no' : data['no'][i],
        'reception' : data['reception'][i],
        'user_id' : data['user_id'][i],
        'inquiry_type1' : data['inquiry_type1'][i],
        'content' : data['content'][i],
        'write_datetime' : data['write_datetime'][i],
        'update_datetime' : data['update_datetime'][i],
        'write_gw_id' : data['write_gw_id'][i],
        'write_gw_name' : data['write_gw_name'][i],
        'del_flag' : data['del_flag'][i],
        'notice_flag' : data['notice_flag'][i],
    }

    for k in row:
        if pandas.isna(row[k]) is True: # pandas에서 빈 값은 NaN으로 넣어서 빈 값으로 변경
            row[k] = ''
        elif row[k] == '\\N': # mysql csv 덤프시 null이 \N이라 빈 값으로 변경
            row[k] = ''

 

반응형