-
[Python] SQLite3 DB 적재 2회차DB 2023. 6. 8. 13:58728x90
지난 1회차에서 DB에 깡통 테이블을 만들었었죠!
이번에는 깡통 테이블에 데이터를 적재하는 방법에 대해 알아보겠습니다!
# 사용자 정의 객체 file_path = r"C:/Users/sdjeo/OneDrive/바탕 화면/" # DB테이블 생성 : 1. 고객정보 # 1-1. CSV 추출 및 변환 # 데이터 추출 customer_data = pd.read_csv(f"{file_path}/CUSTOMER.csv") # 컬럼명 Rename df = ( customer_data .rename(columns = { "CUST_ID" : '고객번호' , "LAST_NAME" : '성' , "FIRST_NAME" : '이름' , "GENDER" : '성별' , "AGE" : '나이' } ) )
먼저, csv파일로 저장된 데이터를 로드한 후 변수명을 변경해줍니다.
고객번호 성 이름 나이 성별1161115 Re**** Laurel 30 Male 1168350 Su**** Otto 27 Male 1161269 Kl******** Ta-Heng 44 Male 1161657 Ro**** Bhadrabuja 65 Male 1161937 Ly***** Candrin 49 Male ... ... ... ... ... 1254229 Od** Reba 71 Female 1254576 P¿******** Leonore 47 Male 1037053 Ho**** Federico 45 Male 1037261 Pe********* Najia 51 Female 1037854 Ca**** Hugh 66 Male 4749 rows × 5 columns
이 후, 데이터 초기화 및 적재를 수행합니다.
고객번호를 기준으로 중복 제거를 한 후, 데이터를 CUSTOMER_INFO 테이블에 밀어넣습니다.
con : 데이터베이스 연결 객체(engine)를 지정
if_exists: 테이블이 이미 존재할 경우의 동작을 설정 / 'append' : 기존 테이블에 데이터를 추가합니다.index: 인덱스 컬럼을 테이블에 적재하지 않도록 설정
method: 데이터를 적재하는 방법을 설정 / 'multi'로 설정하면 데이터를 일괄적으로 적재
chunksize: 한 번에 적재되는 데이터의 크기(chunk)를 설정 / 10000으로 설정되어 있으므로 10000개의 행 단위로 데이터를 적재즉, 아래 코드는 'CUSTOMER_INFO' 테이블에서 모든 데이터를 삭제한 후, 데이터프레임(df)에서 중복된 '고객번호'를 제거한 데이터를 'CUSTOMER_INFO' 테이블에 추가로 적재합니다.
# 1-2. DB적재 # 데이터 초기화 cur.execute("""delete from CUSTOMER_INFO""") # 데이터 적재 df.drop_duplicates(['고객번호']).to_sql( name = f'CUSTOMER_INFO' , con = engine , if_exists = 'append' , index = False , method = "multi" , chunksize = 10000 )
[LOG] DF 건수 = 4,749, DB DF 건수 = 4,749
최종적으로, 데이터건수와 적재된 데이터 건수를 비교합니다
'DB' 카테고리의 다른 글
[Python] SQLite3 DB 적재 1회차 (0) 2023.06.07