当前位置: 首页 > 面试题库 >

pandas的滚动差异

颛孙高义
2023-03-14
问题内容

有谁知道有效的函数/方法(例如)pandas.rolling_mean来计算数组的滚动差

这是我最接近的解决方案:

roll_diff = pd.Series(values).diff(periods=1)

但是,它仅计算单步滚动差。理想情况下,步长是可编辑的(即当前时间步长与最后n个步长之间的差)。

我也写了这个,但是对于更大的数组,它很慢:

def roll_diff(values,step):
    diff = []
    for i in np.arange(step, len(values)-1):
        pers_window = np.arange(i-1,i-step-1,-1)
        diff.append(np.abs(values[i] - np.mean(values[pers_window])))
    diff = np.pad(diff, (0, step+1), 'constant')
    return diff

问题答案:

关于什么:

import pandas

x = pandas.DataFrame({
    'x_1': [0, 1, 2, 3, 0, 1, 2, 500, ],},
    index=[0, 1, 2, 3, 4, 5, 6, 7])

x['x_1'].rolling(window=2).apply(lambda x: x.iloc[1] - x.iloc[0])

通常,您可以lambda使用自己的功能替换该功能。请注意,在这种情况下,第一项将是NaN

定义以下内容:

n_steps = 2
def my_fun(x):
    return x.iloc[-1] - x.iloc[0]

x['x_1'].rolling(window=n_steps).apply(my_fun)

您可以在处计算值之间的差异n_steps



 类似资料:
  • 问题内容: 如何获得pandas系列值的某个长度n的滚动值? 例如,如果我有以下内容: 我如何获得长度为n的移动值,即类似,如果n = 3: [NaN,NaN,0],[NaN,0,1],…,[4,8.8,7.12] 编辑:如果我使用熊猫滚动,如: 然后滚动是该系列的移动平均线。在这里,我不希望每个移动的3个值集合的平均值,而是这些3个值的集合。 问题答案: 我认为您需要先添加s,然后再执行以下解决

  • 视差滚动是指让多层背景以不同的速度移动,从而形成的立体运动效果。比如超级马里奥游戏中,角色所在地面的移动与背景天空的移动,就是一个视差滚动。Cocos2d-x 通过 ParallaxNode 对象模拟视差滚动。可以通过序列控制移动,也可以通过监听鼠标,触摸,加速度计,键盘等事件控制移动。ParallaxNode 对象比常规节点对象复杂一些,因为为了呈现不同的移动速度,需要多个子节点。它类似 Men

  • 利用UIScrollView实现视差滚动效果。在demo中,滑动ScrollView,背景图和文字的滚动速度不一样。直接用ScrollView 的协议,对其子视图的坐标进行随机系数比例的位置移动修正,从而实现视差滚动效果。没有用其他的框架,代码简单。 作者说:原创Demo 转载请注明出处。 [Code4App.com]

  • 本文向大家介绍什么是视差滚动?如何实现视差滚动的效果?相关面试题,主要包含被问及什么是视差滚动?如何实现视差滚动的效果?时的应答技巧和注意事项,需要的朋友参考一下 什么是视差滚动: 就是在同一视角下,鼠标或者页面滚动时,不同元素以不同的速率跟随滚动,产生生动的效果。 如何实现视差滚动: 根据页面滚动高度的变化,JS相应调整不同元素的不同位移,常见的插件有 parallax.js,以及更多的推荐《1

  • 问题内容: 假设我有以下数据框 第一列是日期时间对象,第二列是整数。我想要的是为每行最后五分钟计算列“ A”的总和。 作为该行的示例 ,列“ A”的总和为2(1 + 1),而行的列“ A”的总和为7(2 + 1 + 4)。重要的是时间窗口(5分钟)的过去行数对于每一行都是不同的(因为时间序列是不规则的)。 如何在pandas中使用rolling_sum方法获取列“ A”的最后五分钟总和?提前致谢。