我想用空值替换NaN值,将其写入mysql数据库。我不想删除(df.dropna()
)整行,也不想使用df.fillna(0)
将其替换为0。使用df.fillna('')
或df.fillna('NULL')
时会显示错误消息:
(mysql.connector.errors.DatabaseError)1265(01000):数据被截断 对于列' log_return'在行
数据框中的数据如下所示:
date price log_return
0 2017-02-14 105.800 -0.006125
1 2017-02-13 106.450 0.004236
2 2017-02-10 106.000 NaN
我想要的是以下内容:
date price log_return
0 2017-02-14 105.800 -0.006125
1 2017-02-13 106.450 0.004236
2 2017-02-10 106.000
答案 0 :(得分:2)
试试这个:
df.where(pd.notnull(df), None)
示例强>
df = pd.DataFrame(np.eye(3))
df = df.where(lambda x: x==1, np.nan)
df = df.where(pd.notnull(df), None)
请注意,pd.fillna(None)不起作用,它会保持NaN值不受影响。