【发布时间】:2015-03-02 22:01:00
【问题描述】:
提前感谢您的帮助! 我有一个数据框。比如说,对于colume incr,如果0 1 1 1 -1 0 1 1 ....的数字,我想解析列表并获取每个数据点,数据列表增加了多少次(或者更确切地说不是减少);该点的减少会将当前数据点的输出重置为零。例如对于列表(代码中名为 output['inc_adj'] ) 0 1 1 1 -1 0 1 -1 我应该在代码中命名为 output['cont_inc'] 1 2 3 4 0 1 2 0
我写了以下代码,但是效率很低,请问有什么建议可以显着提高效率吗?在两个循环中,我似乎一直在重新加载 CPU 中的缓存(如果我的感觉是正确的),但我目前找不到更好的解决方案。
output['cont_inc']=0; for i in xrange(1,output['inc_adj'].count()): j=i; while(output['inc_adj'][j] != -1): #for both increase or unchanged output['cont_inc'][i]+=1; j-=1
提前致谢!
【问题讨论】:
标签: python optimization pandas while-loop cpu-cache