我正在尝试找到一种在给定分组和日期范围的情况下在熊猫中生成滚动计数或总和的有效方法.最终,我希望能够添加条件,即.评估'类型'字段,但我还没有.我写了一些东西来完成工作,但觉得可以有更直接的方法来达到预期的结果.
我的pandas数据框目前看起来像这样,所需的输出放在最后一列'rolling_sales_180'中.
name date amount rolling_sales_180
0 David 2015-01-01 100 100.0
1 David 2015-01-05 500 600.0
2 David 2015-05-30 50 650.0
3 David 2015-07-25 50 100.0
4 Ryan 2014-01-04 100 100.0
5 Ryan 2015-01-19 500 500.0
6 Ryan 2016-03-31 50 50.0
7 Joe 2015-07-01 100 100.0
8 Joe 2015-09-09 500 600.0
9 Joe 2015-10-15 50 650.0
Run Code Online (Sandbox Code Playgroud)
我目前的解决方案和环境可以在下面找到.我一直在使用stackoverflow中的这个R Q&A建模我的解决方案.在过去365天窗口中执行运行总计的有效方法
import pandas as pd
import numpy as np
def trans_date_to_dist_matrix(date_col): # used to create a distance matrix
x = date_col.tolist()
y …Run Code Online (Sandbox Code Playgroud) 我正在努力从Project Euler解决下面的问题,简而言之就是迭代'n'骰子并更新它们的值.
一长串骰子 - 项目欧拉问题#641
考虑一行显示1的n个骰子.
首先转动每秒钟(2,4,6,...),使显示的数字增加1.然后每隔三个骰子转动一次.第六个模具现在将显示3.然后每隔四个模具转动,依此类推,直到每个第n个模具(仅最后一个模具)转动为止.如果要转动的模具显示6,则将其更改为显示1.
设f(n)是处理结束时显示1的骰子数.给出f(100)= 2和f(10 ^ 8)= 69.
求f(10 ^ 36).
我使用numpy在Python中编写了下面的代码,但是无法准确地弄清楚我的函数输出错误,以匹配上面的输出.现在f(100)返回1(应该是2); 甚至f(1000)返回1.
import numpy as np
def f(n):
# establish dice and the value sets for the dice
dice = np.arange(1, n + 1)
dice_values = np.ones(len(dice))
turns = range(2, len(dice) + 1)
print("{a} dice, {b} values, {c} runs to process".format(a=len(dice), b=len(dice_values), c=len(turns)))
# iterate and update the values of each die
# in our array of dice
for turn in …Run Code Online (Sandbox Code Playgroud)