今天在将DataFrame存到MySQL时一直报错:
pymysql.err.DataError: (1406, “Data too long for column ‘developer’ at row 250”)
先放代码:
df = pd.read_csv('E:\AllWorkSpace\python_workspace\FM\\apps0507.csv')
print(df)
# 将数据写入mysql的数据库,但需要先通过sqlalchemy.create_engine建立连接,且字符编码设置为utf8,否则有些latin字符不能处理
connect = create_engine('mysql+pymysql://root:123456@localhost:3306/rec_sys?charset=utf8')
pd.io.sql.to_sql(df,'apps', connect, schema='rec_sys', if_exists='append')
乍一看,还以为哪里数据太长出问题了,找到报错第250行,发现‘developer’列数据有点问题,后面居然有一个图标:‘Checkout Chick 🐥’。
也不知道怎么存进去的。。。把这个图标删掉之后就可以存储了。
修改后的完整代码:
from sqlalchemy import create_engine
import pandas as pd
import warnings
warnings.filterwarnings('ignore')
df = pd.read_csv('E:\AllWorkSpace\python_workspace\FM\\apps0507.csv')
# 这里属于人工修改,我提前找到这行有问题
if df.iloc[249,3]=='Checkout Chick 🐥':
df.iloc[249, 3] = 'Checkout Chick'
print(df)
# 将数据写入mysql的数据库,但需要先通过sqlalchemy.create_engine建立连接,且字符编码设置为utf8,否则有些latin字符不能处理
connect = create_engine('mysql+pymysql://root:123456@localhost:3306/rec_sys?charset=utf8')
pd.io.sql.to_sql(df,'apps', connect, schema='rec_sys', if_exists='append')
数据库操作方法及参数意义不多解释,可以参考:
https://blog.csdn.net/qq_38486203/article/details/93307930