您的位置:首页 > 编程语言 > Python开发

Python简单实现计算当前单元格的前几行之和

2017-12-19 18:07 621 查看
想去实现计算当前单元格当前位置前一列的前几行之和,cvalue列为要计算的数据,new为目标列、新生成

数据格式如下:

cvaluenew
55
510
2030
535
540
545
550
555
以目前水平能想到的只能是按需求直接计算,原理同斐波那契数列


#-*-coding:utf-8-*-
import pandas as pddata=pd.read_excel(path)
data['new']=0
c=data['cvalue']
n=data['new']
n[0],n[1]=c[0],n[0]+c[1]

a=1
while 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遍历,居然用了一个小时

,效率都很低,看到的朋友有什么好的办法指点下不
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: