我有一个包含很多列的数据集。我需要做一个Group By ID
然后SUM
在所有其他列上(所以,ID
不能聚合)。
这是我的代码的一个小示例:
import pandas as pd
import pandasql as ps
dt= {
"ID" : [1,2,1,4,2],
"A" : [2,3,4,5,6],
"B":[10,20,30,40,50],
"C": [100, 200, 300, 400, 500]
}
dt= pd.DataFrame(dt)
dt= pd.DataFrame(dt)
query = """
select ID,Sum(*)
from dt
group by ID
"""
polyps = ps.sqldf(query)
但是,它抱怨:
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) wrong number of arguments to function Sum()
[SQL:
select ID,Sum(*)
from dt
group by ID
]
因此,正确的输出是:
ID A B C
0 1 6 40 400
1 2 9 70 700
2 4 5 700 400
如果您希望对每一列分别求和,则需要列出它们:
select ID, sum(a), sum(b), sum(c)
from dt
group by ID;
如果你想在一列中得到所有这些的总和:
select ID, sum(a) + sum(b) + sum(c)
from dt
group by ID;
*
仅允许用于count(*)
计算行的目的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句