亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何基于另一列的滾動總和獲得列值?

如何基于另一列的滾動總和獲得列值?

慕容708150 2021-04-14 17:15:01
我想創建一個數據集,然后根據插入到第一列中的數字確定第二列的值。首先,我想創建一個包含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個連續數字的總和。
查看完整描述

1 回答

?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

可以,但是首先獲得或NaN的rolling:


df['a'] = df['Numbers'].rolling(10).sum()

print (df)

    Numbers     a

0         1   NaN

1         2   NaN

2         3   NaN

3         4   NaN

4         5   NaN

5         6   NaN

6         7   NaN

7         8   NaN

8         9   NaN

9        10  55.0

10       11  65.0

11       12  75.0

12       13  85.0

df['a'] = df['Numbers'].rolling(10).sum().shift(-9)

print (df)

    Numbers     a

0         1  55.0

1         2  65.0

2         3  75.0

3         4  85.0

4         5   NaN

5         6   NaN

6         7   NaN

7         8   NaN

8         9   NaN

9        10   NaN

10       11   NaN

11       12   NaN

12       13   NaN

或使用參數min_periods=1與間隔數1,1-2,1-3...為填充第一NaNS:


df['a'] = df['Numbers'].rolling(10, min_periods=1).sum()

print (df)

    Numbers     a

0         1   1.0

1         2   3.0

2         3   6.0

3         4  10.0

4         5  15.0

5         6  21.0

6         7  28.0

7         8  36.0

8         9  45.0

9        10  55.0

10       11  65.0

11       12  75.0

12       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      a

0         1   55.0

1         2   65.0

2         3   75.0

3         4   85.0

4         5   95.0

5         6  105.0

6         7  115.0

7         8  125.0

8         9  135.0

9        10  145.0

10       11  155.0

11       12  165.0

12       13  175.0

13       14  185.0

14       15  195.0

15       16  205.0

16       17  215.0

17       18  225.0

18       19  235.0

19       20  245.0

20       21  255.0

21       22  265.0

22       23  275.0

23       24  285.0

24       25  295.0

25       26  305.0

26       27  315.0

27       28  325.0

28       29  335.0

29       30  345.0

30       31  355.0

31       32  365.0

32       33  375.0

33       34  385.0

34       35  395.0

35       36  405.0

36       37  415.0

37       38  425.0

38       39  435.0

39       40  445.0

40       41  455.0

41       42  465.0

42       43  475.0

43       44  485.0

44       45  495.0

45       46  505.0

46       47  515.0

47       48  525.0

48       49  535.0

49       50  545.0


查看完整回答
反對 回復 2021-04-27
  • 1 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號