Python 将整型数据帧保存为csv(缺少值),以便导入SQL Server

Python 将整型数据帧保存为csv(缺少值),以便导入SQL Server,python,sql,sql-server,pandas,csv,Python,Sql,Sql Server,Pandas,Csv,我使用Python从web上获取了一些棒球数据,并将其保存在一个数据框中。其中一列包含数字播放器识别代码,但它通常为空。因为整型列不能包含NAN,所以当我将数据导出到csv时,此列已转换为浮点并保存为浮点 当我尝试在MS SQL Server数据库中运行大容量插入时,这会导致问题,因为相关列被定义为“INT”类型,并且还包含对另一个表的外键约束。出现以下错误消息: 大容量加载数据转换错误类型不匹配或无效字符 对于指定的代码页 我尝试了提供的建议,但似乎更改浮点格式并不能解决问题,SQL Serv

我使用Python从web上获取了一些棒球数据,并将其保存在一个数据框中。其中一列包含数字播放器识别代码,但它通常为空。因为整型列不能包含NAN,所以当我将数据导出到csv时,此列已转换为浮点并保存为浮点

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

大容量加载数据转换错误类型不匹配或无效字符 对于指定的代码页

我尝试了提供的建议,但似乎更改浮点格式并不能解决问题,SQL Server仍然抛出相同的错误

我知道,诸如之类的包提供了将数据传输到数据库的另一种方式,但我的数据帧相当大,大约有600万行,70列,我发现这个过程太慢,至少与保存到csv和导入相比

我怎样才能最好地解决这个问题?归根结底,我并不热衷于保存到csv和在SQL Server中使用大容量插入,但我确实想要一种同样快速的方法

pd.fillna(-1)

这会将所有空白值填充为所需值,例如负值。有关更多参数,请参阅。

您是否考虑过通过pyodbc直接从python批量插入数据-?我没有考虑过。。。但它能解决问题吗?我需要插入一列中缺少值的整数。。。鉴于pandas无法将此字段存储为整数,当我使用pyodbc插入时,肯定会遇到同样的问题?你可以厚颜无耻地使用-999999之类的值来输入缺失的值,这是你在数据中永远看不到的值,然后尝试对其进行更新,这样可以很方便地解决我的问题。然而,在数据帧的整数列中不允许缺少值这一事实让人感觉像是一个缺陷,而不是一个特性。令人惊讶的是,这一点没有改变。