我有一个 pandas 数据框,正在将其写入 SQL Server 中的表中。数据框包含以下数据类型:
Contact_ID object
Skill_No float64
Skill_Name object
Campaign_No float64
Campaign_Name object
Agent_No float64
Agent_Name object
Team_No float64
Team_Name object
Start_Date object
Disp_Code float64
Disp_Name object
Disp_Comments object
当我尝试写入 SQL Server 时,出现以下错误:
ProgrammingError: ('42000', '[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 16 (""): The supplied value is not a valid instance of data type float. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision. (8023) (SQLExecDirectW)')
我尝试将 sql 表中的数据类型转换为十进制、浮点数,然后再转换回来,但似乎没有任何效果。我该如何解决这个问题?
我遇到了同样的错误消息,在我的情况下,这是由 pandas.DataFrame 的某些列中的某些 float('inf') 和 float('-inf') 值引起的。我通过将无穷大值更改为 1 或 -1 解决了这个问题,这在我的项目上下文中是有意义的。或者,您可以删除这些行。
df.loc[df[col_name] == float('-inf'), col_name] = -1
df.loc[df[col_name] == float('inf'), col_name] = 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)