【发布时间】:2019-08-20 21:38:20
【问题描述】:
我是 Python 新手,需要将用于数据聚合的简单 SAS SQL 代码转换为 Python。
以虹膜数据为例:
from bokeh.sampledata.iris import flowers
我在 SAS 中做什么:
create table data_2 as
select species
,petal_width
,sum(sepal_length) as total_length
,sum(sepal_length*sepal_width)/sum(sepal_length) as ratio
from flowers
group by 1,2;
输出
species petal_width total_sepal_length ratio
setosa 0.1 29 3.24
------ --- --- ---
我需要将数百个此类查询转换为 Python。我使用Python groupby 和 sum 函数,但我只能一步一步做,所以我的代码很长。如何以有效的方式在 Python 中做到这一点?
【问题讨论】:
-
如果您使用“groupby”,听起来您使用的是 pandas。如果是这样,您是否有一个数据框并且您希望在其上执行与那条 SQL 相同的操作?如果是这样,您能否提供一个示例数据框以及所需的输出? (我们称之为minimal, complete, and verifiable example。)
-
@fuglede 是的。我需要数据框,并希望获得与 SQL 所做的相同的聚合结果,包括新列命名。
-
所以您是要我们为您编写 pandas 代码?
-
@roganjosh 是的。如果您可以为我编写一些代码开始,这将非常有帮助。谢谢。
-
但是 Stack Overflow 不是代码编写服务。我们帮助解决现有代码中的问题;这太宽泛了。
标签: python sql pandas aggregate-functions pandas-groupby