我正在合并两个数据帧。在选择中,我需要计算列的指数/幂才能得到结果。 我尝试了几种不成功的选择:
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中是否有实现指数或幂的功能
谢谢
目前没有回答
相关问题 更多 >
编程相关推荐