如何加快Google Spreadsheet的Google Apps脚本代码的速度

问题描述

我的代码可以运行“如果AM1> 0显示AM:AM,否则隐藏AM:AM”。上午到厘米 这可行,但是非常非常慢。每个步骤需要1-3秒,大约有53列,总共需要50-150秒。

我该如何加快速度?

Series.mask

m = df['DIVAMT'] == 0
g = m.ne(m.shift()).cumsum()
df["Consecutives1"] = m.groupby([df['PERMNO'],g]).cumcount().mask(m,0)
    
print (pd.concat([df.loc[182:189],df.loc[227:234],df.loc[365:372]]))

     PERMNO  year  DIVAMT  Consecutives  Consecutives1
182   10015  1984   0.000             0              0
183   10015  1985   0.000             0              0
184   10015  1986  14.135             1              0
185   10016  1986   0.790             0              0
186   10016  1987   0.890             1              1
187   10016  1988   1.140             2              2
188   10016  1989   1.200             3              3
189   10016  1990   0.500             4              4
227   10019  1999   0.000             0              0
228   10019  2000   0.000             0              0
229   10019  2001   0.000             0              0
230   10019  2002   1.350             1              0
231   10020  1986   1.000             0              0
232   10020  1987   1.000             1              1
233   10020  1988   0.760             2              2
234   10020  1989   0.540             3              3
365   10029  1987   0.000             0              0
366   10029  1988   0.000             0              0
367   10029  1989   0.000             0              0
368   10029  1990   6.500             1              0
369   10030  1963   1.200             0              0
370   10030  1964   2.500             1              1
371   10030  1965   2.850             2              2
372   10030  1966   1.950             3              3

解决方法

您经常调用函数getActiveSheet(),getRange()和getValue()。 尝试最小化读写次数。考虑使用getValues()方法。

您可以编写脚本,以通过最大程度地减少读取和写入次数来最大程度地利用内置缓存。交替进行读写命令很慢。要加快脚本运行速度,请使用一个命令将所有数据读入数组,对数组中的数据执行任何操作,然后使用一个命令将数据写出。

查看更多 https://developers.google.com/apps-script/guides/support/best-practices

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...