如何基于另一列的滚动总和获得列值?

我想创建一个数据集,然后根据插入到第一列中的数字确定第二列的值。


首先,我想创建一个包含2列的数据集(将一列保留为空白)


我要创建的数据集:(我要在数字列中插入从1到50的所有连续数字)


 Expected Output: 


  Numbers      Sum  

    1          55   (this is the sum of first 10 consecutive numbers)

    2          65   (this is the sum of consecutive 10 numbers from 2 to 11)

    3          75   (this is the sum of consecutive 10 numbers from 3 to 12)

    4          85   (this is the sum of consecutive 10 numbers from 4 to 13)

    5

    6

    7

    8 

    9 

    10 

    11 

    12

    13

依此类推,我想通过在列号中插入1到50的值来计算1到50的值的总和,并获取10个连续数字的总和。


慕容708150
浏览 132回答 1
1回答

素胚勾勒不出你

可以,但是首先获得或NaN的rolling:df['a'] = df['Numbers'].rolling(10).sum()print (df)    Numbers     a0         1   NaN1         2   NaN2         3   NaN3         4   NaN4         5   NaN5         6   NaN6         7   NaN7         8   NaN8         9   NaN9        10  55.010       11  65.011       12  75.012       13  85.0df['a'] = df['Numbers'].rolling(10).sum().shift(-9)print (df)    Numbers     a0         1  55.01         2  65.02         3  75.03         4  85.04         5   NaN5         6   NaN6         7   NaN7         8   NaN8         9   NaN9        10   NaN10       11   NaN11       12   NaN12       13   NaN或使用参数min_periods=1与间隔数1,1-2,1-3...为填充第一NaNS:df['a'] = df['Numbers'].rolling(10, min_periods=1).sum()print (df)    Numbers     a0         1   1.01         2   3.02         3   6.03         4  10.04         5  15.05         6  21.06         7  28.07         8  36.08         9  45.09        10  55.010       11  65.011       12  75.012       13  85.0编辑:如果有可能添加下一个价值观-这里的范围1来61那么可以创建滚动,然后删除最后NaNs行:df = pd.DataFrame({'Numbers':range(1, 61)})df['a'] = df['Numbers'].rolling(10).sum().shift(-9)df = df.iloc[:50]print (df)    Numbers      a0         1   55.01         2   65.02         3   75.03         4   85.04         5   95.05         6  105.06         7  115.07         8  125.08         9  135.09        10  145.010       11  155.011       12  165.012       13  175.013       14  185.014       15  195.015       16  205.016       17  215.017       18  225.018       19  235.019       20  245.020       21  255.021       22  265.022       23  275.023       24  285.024       25  295.025       26  305.026       27  315.027       28  325.028       29  335.029       30  345.030       31  355.031       32  365.032       33  375.033       34  385.034       35  395.035       36  405.036       37  415.037       38  425.038       39  435.039       40  445.040       41  455.041       42  465.042       43  475.043       44  485.044       45  495.045       46  505.046       47  515.047       48  525.048       49  535.049       50  545.0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python