pandasql中的指数函数或幂函数

2024-10-02 10:22:11 发布

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

我正在合并两个数据帧。在选择中,我需要计算列的指数/幂才能得到结果。 我尝试了几种不成功的选择:

from pandasql import sqldf, load_meat, load_births
pysqldf = lambda q: sqldf(q, globals())
meat = load_meat()
births = load_births()

print(pysqldf("SELECT date, veal * 2 as vealx2  FROM meat LIMIT 10;").head()) #Ok for multiplication and other formulas.
print(pysqldf("SELECT date, veal ** 2 as vealxx2  FROM meat LIMIT 10;").head()) #NOk
print(pysqldf("SELECT date, power(veal,2) as vealxx2  FROM meat LIMIT 10;").head()) #NOk
print(pysqldf("SELECT date, pow(veal,2) as vealxx2  FROM meat LIMIT 10;").head()) #NOk
print(pysqldf("SELECT date, exp(veal,2) as vealxx2  FROM meat LIMIT 10;").head()) #NOk
print(pysqldf("SELECT date, veal^2 as vealxx2  FROM meat LIMIT 10;").head()) #NOk


Error:
PandaSQLException: (sqlite3.OperationalError) near "*": syntax error
[SQL: SELECT date, veal ** 2 as vealxx2  FROM meat LIMIT 10;]
(Background on this error at: http://sqlalche.me/e/14/e3q8)

上面的代码只是为了说明这个问题

的功能将直接在数据帧或python代码中工作,但在pandasql中不起作用

我可以在pandas中完成结果,但是公式很复杂,包括条件、case语句和聚合,这使得解决方案非常难以理解,尽管它与sql语句一样非常简单

在pandasql中是否有实现指数或幂的功能

谢谢


Tags: fromdateasloadselectheadlimitprint

热门问题