小编Jos*_*Jos的帖子

相当于 SQL 窗口函数和行范围的 Pandas

考虑最小的例子

customer   day  purchase
Joe        1       5
Joe        1      10
Joe        2       5
Joe        2       5       
Joe        4      10
Joe        7       5
Run Code Online (Sandbox Code Playgroud)

在 BigQuery 中,可以做类似的事情来获取客户在过去 2 天内每天花费的金额:

SELECT customer, day
, sum(purchase) OVER (PARTITION BY customer ORDER BY day ASC RANGE between 2 preceding and 1 preceding)
FROM table
Run Code Online (Sandbox Code Playgroud)

熊猫中的等价物是什么?即,预期结果

customer   day  purchase    amount_last_2d
Joe        1       5             null  -- spent days [-,-]
Joe        1      10             null  -- spent days [-,-]
Joe        2       5               15  -- spent days [-,1]
Joe        2 …
Run Code Online (Sandbox Code Playgroud)

range window-functions pandas google-bigquery

6
推荐指数
1
解决办法
181
查看次数

删除与我的数据集无关的行

考虑以下熊猫数据框,其中包含有关单个用户使用公共池的信息。

他每周只能使用两次该服务,因此当他达到2次使用时,同一周内的其余天数将自动为0。我如何删除此无关的行,即满足df ['Attended' ] == 0,因为已达到阈值?

Week Day Attended?
1     1      0
1     2      1
1     3      1
1     4      0
1     5      0
2     1      1
2     2      1
2     3      0
2     4      0
2     5      0
3     1      0
3     2      0
3     3      0
3     4      0
3     5      1
Run Code Online (Sandbox Code Playgroud)

例如,当在第3天达到阈值时,预期输出将从第1周删除第4,5天。以相同的方式,在第2周的第2天达到阈值,因此删除第3,4和5天。

Week Day Attended?
1     1      0
1     2      1
1     3      1
2     1      1
2     2      1
3     1      0
3     2      0
3 …
Run Code Online (Sandbox Code Playgroud)

delete-row dataframe pandas

0
推荐指数
1
解决办法
40
查看次数