考虑最小的例子
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) 考虑以下熊猫数据框,其中包含有关单个用户使用公共池的信息。
他每周只能使用两次该服务,因此当他达到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)