在Pandas中是否有一个习惯上等价于SQL窗口函数的函数?例如,在Pandas中用什么方法来编写等价函数是最简洁的?
SELECT state_name,
state_population,
SUM(state_population)
OVER() AS national_population
FROM population
ORDER BY state_name
或者这个?:
SELECT state_name,
state_population,
region,
SUM(state_population)
OVER(PARTITION BY region) AS regional_population
FROM population
ORDER BY state_name
2条答案
按热度按时间k5hmc34c1#
对于第一个SQL:
Pandas:
对于第二个SQL:
Pandas:
全国人口:
区域人口:
kpbwa7wx2#
另一个常见的窗口是
OVER(ORDER BY ...)
。Pandas的等值是
cumsum()
另一个常见的窗口函数是
ROW_NUMBER()
。它的等价物Pandas的等价物是
range()
。还有一个基于panda的模块
pandasql
,它可以让你在本地 Dataframe 上运行sql查询,所以如果你对sql很熟悉,你可以直接在 Dataframe 上运行查询。