Pandasql:Python int 太大而无法转换为 SQLite INTEGER

问题描述

当我运行我的代码时,我收到以下“Python int 太大而无法转换为 sqlite INTEGER”错误。我是 psql 的初学者。

代码

import pandas as pd
import numpy  as np
import pandasql as psql
from pandasql import sqldf

T900_file = r'K:\myfile.xlsx'
df1 = pd.read_excel(T900_file)

T1000 = psql.sqldf("""Select Date,UP_Cust_Num,UP_Cust_Name,sum(Utilized_FVO)  as FVO,avg(UP_Generation) as UP_Gen
                      from df1
                      Group by Date,UP_Cust_Name""")

错误必须与聚合有关。我该如何解决错误?任何帮助将不胜感激。

解决方法

我认为这意味着你有一个溢出错误,所以它打破了 int 的边界。

,

这似乎是df1中数据类型的问题。如果你跑

df1.info()

您可能会看到一些数值类型为 Int64;如果是这种情况,那么您可以将这些值转换为较小的整数(提供适合新数据类型的值)。为了转换为较小的整数,您可能需要执行以下操作:

df1["Utilized_FVO"] = df["Utilized_FVO"].astype(np.int8)
df1["UP_Generation"] = df["UP_Generation"].astype(np.int8)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...