Python簡單實現計算當前單元格的前幾行之和
阿新 • • 發佈:2019-01-23
想去實現計算當前單元格當前位置前一列的前幾行之和,cvalue列為要計算的資料,new為目標列、新生成
資料格式如下:
cvalue | new |
5 | 5 |
5 | 10 |
20 | 30 |
5 | 35 |
5 | 40 |
5 | 45 |
5 | 50 |
5 | 55 |
#-*-coding:utf-8-*- import pandas as pddata=pd.read_excel(path) data['new']=0c=data['cvalue'] n=data['new'] n[0],n[1]=c[0],n[0]+c[1]
a=1while a<len(n): n[a] = n[a - 1] + c[a]
a += 1
不過實際資料量37萬行,上面的程式連結果都輸出不了
於是函式里加了個yield關鍵字
while a < len(n): yield n[a - 1] n[a] = n[a - 1] + c[a] a += 1程式碼執行用了3微秒,不過返回了生成器,用了list和for遍歷,居然用了一個小時,效率都很低,看到的朋友有什麼好的辦法指點下不