为了账号安全,请及时绑定邮箱和手机立即绑定

在 Pandas 中对 Window PartitionBy 进行排名

在 Pandas 中对 Window PartitionBy 进行排名

慕桂英3389331 2023-10-11 15:38:52
我接触了一些需要在面向 Pandas 的处理中进行翻译的 PySpark 代码。任何帮助都会非常受欢迎,因为我正在努力寻找 Pandas 等价物的方法:PySpark代码:window = Window.partitionBy(df["timestamp"]).orderBy(df["timestamp"].desc())df = df.select('*', F.rank().over(window).alias('rank')) \       .filter(F.col('rank') <= 1) \       .orderBy(df["timestamp"].desc()) \       .limit(int(window_int))谢谢
查看完整描述

1 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

您可以使用sqldffrompandasql来实现简单的sql类似窗口的体验。该库实际上使用sqlite支持窗口函数的语法,每个变量/数据帧都可以被视为一个表。该函数sqldf还返回一个DataFrame


from pandasql import sqldf


df = sqldf("""

 SELECT * FROM (

     SELECT 

        * ,

        RANK() OVER (PARTITION BY timestamp ORDER  BY timestamp ) as rank

     FROM

        df

     ORDER BY timestamp desc

 ) dfsub

 WHERE

    rank <= 1

 LIMIT %d

""" % (int(window_int)))


查看完整回答
反对 回复 2023-10-11
  • 1 回答
  • 0 关注
  • 63 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信