【问题标题】:Pandas, Numpy: How to sum last "X" number of values in a dataframe [duplicate]Pandas,Numpy:如何对数据框中的最后“X”个值求和 [重复]
【发布时间】:2020-06-15 12:26:56
【问题描述】:

在给定以下条件的情况下,我希望对分布的最后 X = 12(在这种情况下)值求和:

  1. 如果值少于 12 个,它将对存在的值求和。
  2. 如果值超过 12 个,则将最后 12 个相加。

我一直在使用 Numpy cumsum 函数进行累积和,但是这个总和从头到尾,y_position = np.cumsum(y_EBITDA),我只想要我确定的“X”个值的累积。

下面我有一个输入示例 (EBITDA) 和我需要的输出 (Sum EBITDA 12M)

EBITDA  Sum EBITDA 12M
1       1
1       2
1       3
1       4
1       5
2       7
4       11
1       12
1       13
1       14
4       18
1       19
1       19
1       19
3       21
1       21
1       21
1       20
1       17
1       17
1       17
1       17
1       14

【问题讨论】:

    标签: python pandas numpy


    【解决方案1】:

    你想要的是一个滚动的总和:

    df['Sum EBITDA 12M'] = df['EBITDA'].rolling(12, min_periods=1).sum()
    

    【讨论】:

      【解决方案2】:

      有(至少)两种方法可以做到这一点。一个带滚动和另一个带尾:

      方法一:

      df.tail(12).sum()
      

      方法二:

      df.rolling(12, min_periods=1).sum().iloc[-1]
      

      【讨论】:

      • 我很确定 OP 只是在寻找第二个
      猜你喜欢
      • 2020-04-01
      • 1970-01-01
      • 2020-10-10
      • 1970-01-01
      • 2019-01-25
      • 2017-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多