【问题标题】:How to implement a function with non overlapping and rolling features simultaneously in Pandas/Numpy?如何在 Pandas/Numpy 中同时实现具有非重叠和滚动功能的功能?
【发布时间】:2014-11-10 20:24:16
【问题描述】:

我需要在函数在下一个窗口开始时重新启动的窗口上执行累积返回计算。我们来看一个例子:

A = pd.DataFrame([100, 101, 102, 103, 104, 105, 106, 107, 108],
                 columns=['A'], index=[range(1,10)])

假设您将窗口大小定义为 3,假设我需要窗口的累积回报,那么所需的输出将是

A['B'] = function(A['A'], window=3)

      A         B
1   100         0
2   101  0.010000
3   102  0.020000
4   103         0
5   104  0.009709
6   105  0.019417
7   106         0
8   107  0.009434
9   108  0.018868

谢谢。

【问题讨论】:

    标签: python numpy pandas dataframe


    【解决方案1】:

    IIUC,您可以通过 groupby 来做到这一点:

    >>> w = 3
    >>> A["B"] = A.groupby(np.arange(len(A))//w)["A"].apply(lambda x: x/x.iloc[0]-1)
    >>> A
         A         B
    1  100  0.000000
    2  101  0.010000
    3  102  0.020000
    4  103  0.000000
    5  104  0.009709
    6  105  0.019417
    7  106  0.000000
    8  107  0.009434
    9  108  0.018868
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 2022-11-02
      • 1970-01-01
      相关资源
      最近更新 更多