python - 具有 NUMERIC 数据类型的 pandas to_sql()

标签 python sql sql-server database pandas

我通过读取文件并进行一些预处理来加载 Pandas DataFrame - 它有几列数字。比如

            value
1     13654654328.4567895
2     NULL
3     54643215587.6875455

为了不丢失准确性,我计划在 SQL Server 中将其存储为 NUMERIC。由于我不希望 Pandas 将我的数据转换为 float ,我将其作为字符串加载,然后使用 df.to_sql() 插入到 SQL 中。

如果不存在 NULL,它工作正常。但是,如果它包含 null,无论我为 null 输入“”还是 np.nan,它都会将错误报告为“Error converting data type nvarchar to numeric”。似乎它会自动将其转换为无法在 SQL Server 中转换为 NUMERIC 的空字符串。

有什么办法可以解决这个问题。希望一切都用 Python 完成,不需要更多的 SQL 脚本。

最佳答案

我从未使用过 .to_sql 方法,但我想您需要将 NULL 值替换为 None 值。例如:

df.replace([np.nan], [None], inplace=True)

顺便说一句,np.nan 是 float 类型。在 SQL 中,NULL 是类型“nothing”,在 Python 中相当于 None。 ""和 "NULL"也将被视为字符串。

关于python - 具有 NUMERIC 数据类型的 pandas to_sql(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52284409/

相关文章:

python - 将动态大小的列表转换为像字典一样的树形结构

c# - 来自 Include 的 EF Core 查询但无需返回结果

c# - EF Code First CREATE DATABASE 权限在数据库 'master' 中被拒绝

php - SQL Server 的插入忽略的替代方案

sql - 在 SSIS 中将月份名称更改为月份编号

c# - Entity Framework 连接池 : how to inject UserId into SQL Servers session_context?

Python 脚本未创建足够的输出行

python - 转换 50 个字符串时 Unhexlify 错误

python - 在 Python 中将单词位置编号附加到 Unicode 文本

mysql - MySQL 中如何汇总多个列