将pandas integer dataframe保存到csv(缺少值)以导入SQL

2024-04-29 22:26:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Python从网上搜集了一些棒球数据,并将其保存在Pandas数据框中。其中一列包含数字播放器标识代码,但通常为空。因为Pandas整型列不能包含nan,所以当我将数据导出到csv时,此列已转换为float并保存为这样。在

当我尝试在mssqlserver数据库中运行大容量插入时,这会导致问题,因为相关列被定义为“INT”类型(并且还包含另一个表的外键约束)。引发以下错误消息:

Bulk load data conversion error (type mismatch or invalid character for the specified codepage)

我尝试了here提供的建议,但似乎更改float的格式并不能解决问题,而且SQLServer仍然会抛出相同的错误。在

我知道,像pyodbc这样的包提供了将数据传输到数据库的另一种方法,但是我的数据帧相当大(大约6百万行,70列),而且我发现这个过程太慢了,至少与保存到csv和导入相比。在

我怎样才能最好地解决这个问题?最后,我并不想保存到csv并在sqlserver中使用大容量插入,但我确实想要一个同样快的方法。在


Tags: csv数据方法代码数据库pandas错误数字