我正在尝试将SQL查询转换为等效的python pandas。我的SQL数据是
x=(2.2,2.2,2.2,2.2,2.2)
y=(3.3,3.3,3.3,3.3,3.3)
z=(4.4,4.4,4.4,4.4,4.4)
r=(5.5,5.5,5.5,5.5,5.5)
t=(6.6,6.6,6.6,6.6,6.6)
, SQL查询为:
select sum(sum(x),sum(y),sum(z),
sum(r),sum(t)) into :m
from _fx_ght;
我已经创建了Python代码来将SQL查询转换为pandas:
x=(2.2,2.2,2.2,2.2,2.2)
y=(3.3,3.3,3.3,3.3,3.3)
z=(4.4,4.4,4.4,4.4,4.4)
r=(5.5,5.5,5.5,5.5,5.5)
t=(6.6,6.6,6.6,6.6,6.6)
m=sum(sum(x),sum(y),sum(z),sum(r),sum(t))
print(m)
在执行代码时,我得到一个错误,显示:
Traceback (most recent call last):
File "./prog.py", line 9, in <module>
TypeError: sum() takes at most 2 arguments (5 given)
我如何将其转换为等效的熊猫?
如果我理解你的问题,你想得到每个x,y,z,r,t的总和?
如果是,则
m=sum((sum(x),sum(y),sum(z),sum(r),sum(t)))
尝试:
m=sum([sum(x),sum(y),sum(z),sum(r),sum(t)])
sum()
遍历list和sum中的所有元素。
hmm sum不是这样工作的,您必须将单个和放入另一个数组中例如:
sum_tot = None
sum_arr_list = [x,y,z,r,t]
def sum_arr(array):
return sum(array)
for item in sum_arr_list:
sum_tot += sum_arr(item)
m = sum_tot
有更好的方法来做到这一点或者像下面这样,把它放在sum
内的元组中m = sum((sum(x), ..))
这里是等效的pandas
import pandas as pd
df=pd.DataFrame({"x":[2.2,2.2,2.2,2.2,2.2],
"y":[3.3,3.3,3.3,3.3,3.3],
"z":[4.4,4.4,4.4,4.4,4.4],
"r":[5.5,5.5,5.5,5.5,5.5],
"t":[6.6,6.6,6.6,6.6,6.6]})
m=df.sum().sum()