발생한 오류
raise ProgrammingError("%s can not be used with MySQL" % s)
sqlalchemy.exc.ProgrammingError: (pymysql.err.ProgrammingError) nan can not be used with MySQL
데이터프레임의 빈 값이 NaN으로 채워져 있는 상태에서 데이터프레임을 MySQL에 넣어주면서 오류 발생했다.
np.NaN을 None으로 변경해줘야 한다.
해결법
1. df.where(pd.notnull(df), None)
*df.where : 참값에 대해서는 첫번째 처리를 하고, 참이 아니면 두번째 처리를 한다.
데이터프레임 중 notnull이 참이면, 즉, null이 아닌 값은 그대로 값이 들어가고, null인 값은 None을 넣어준다.
참고: https://lifesteps.tistory.com/119
하지만 해당 방법은 pandas의 version이 1.3.0미만일때만 사용가능하다.
2. df.replace({np.nan: None})
'Python > Pandas' 카테고리의 다른 글
| [Python] Pandas .loc[] 과 .iloc[] (0) | 2021.01.18 |
|---|---|
| [부스트코스] [머신러닝을 위한 파이썬] Pandas Selection & Drop (0) | 2021.01.16 |
| Pandas (0) | 2020.07.25 |