使用pandas过程中,数据转化成DataFrame格式会将缺失值会用NAN填充, 如果直接将数据用pymysql写入数据库会报错,
此时需要将NAN替换成None , 因为None插入数据库会被填写Null 也就是数据库中的空值
报错信息:
pymysql.err.InternalError: (1054, "Unknown column 'nan' in 'field list'")
这时候需要将nan替换为None 再将数据写入库中
# 这里是将NaN替换为None
# df是你要插入数据库的DataFrame, df2是将NAN替换完为None的DataFrame
df2 = df.astype(object).where(pd.notnull(df), None)
args = [(XX,XX,XX) for i in df2.values]
# SQL语句
insert = '''INSERT TO table () VALUES ()'''
# 优化 一次提交多次值
cursor.executemany(sql=insert , args=args)
# 提交到数据库执行
db.commit()