如何解决如何加快Google Spreadsheet的Google Apps脚本代码的速度
我的代码可以运行“如果AM1> 0显示AM:AM,否则隐藏AM:AM”。上午到厘米 这可行,但是非常非常慢。每个步骤需要1-3秒,大约有53列,总共需要50-150秒。
我该如何加快速度?
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。