/////
Search

[SQL] 농업 기존 데이터 → SQL용 변환 데이터 셋

Archive
ETA
2025/12/18
Main Task
Sub Task
메모
상태
Done
생성 일시
2025/12/18 06:59
생성자
파일과 미디어
농업 SQL용 데이터셋.zip
1.
문제 상황 : 제시된 농업 데이터 셋을 SQL에 연결 시킬 때, 오류 발생
Error occurred during batch insert (you can disable batch insert in order to skip particular rows). 이유: Can't parse numeric value [-] using formatter
SQL
복사
오류 해석: SQL⇒ 데이터 셋 중 칼럼에서 INT값 열의 값이 ‘-’ 인 값이 있다. 나는 이걸 어떻게 처리할지 모르겠다.
⇒ 문제 해결하기 위해선 ‘-’ 값을 제거하거나 nan 값으로 변환해야 한다.
2.
해결 방안 :
a.
연결 시키려 했던 데이터 셋 중 어느 데이터(CSV)가 문제 있는지 찾기 ⇒ 22_환경정보.csv 에서 오류 발생
b.
문제가 있는 데이터 셋의 값 중 ‘-’ 데이터 찾기 ⇒ 파이썬에서 ‘-’ 값 필터링해서 칼럼 찾기
c.
‘-’ 값의 행들을 NAN 값으로 변환하기 ⇒ environment['senVal']의 ‘-’ 값을 NAN으로 변환하기
3.
해결 코드
import pandas as pd import numpy as np # 파일 불러오기 energy = pd.read_csv(r"project_data_set\영어ver\22_energtinfo.csv", encoding="euc-kr",low_memory = False) environment = pd.read_csv(r"project_data_set\영어ver\22_enviroinfo.csv", encoding="euc-kr",low_memory = False) growth = pd.read_csv(r"project_data_set\영어ver\22_growinfo.csv", encoding="euc-kr",low_memory = False) production = pd.read_csv(r"project_data_set\영어ver\22_proinfo.csv", encoding="euc-kr",low_memory = False) # 오류발생 데이터 셋 칼럼 찾기 #(environment=='-').any()이랑 같은 뜻의 .eq('조건') : dataframe(series 가능)불리언 마스크 생성기 / 각셀마다 ('조건')을 비교하며 true와 false 생성 environment.eq('-').any() ''' farm_cde False measDate False itemCode False sectCode False classCode False fatrCode False senVal True dtype: bool ''' # senVal 칼럼의 '-' 행이 있는지 다시 확인 environment[environment['senVal'] == '-'] #'-' → NAN으로 강제 변환 ## (pd.to_numeric는 값을 숫자로 해석할 수 있으면 숫자로 변환, 아니면 nan으로 변환) environment['senVal'] = pd.to_numeric(environment['senVal'], errors='coerce') # SQL에 넣을 데이터(csv) 다시 저장 environment.to_csv("22_enviroinfo2.csv", index=False, encoding="euc-kr")
Python
복사