【发布时间】:2018-07-12 10:12:34
【问题描述】:
我有一个包含时间序列的 pandas df,从 t(0) 开始,我需要向前看 t(n),看看前面的最大值和最小值是什么,在定义的大小切片中“从”和“到”列。
这是我的解决方案,它有效,但速度极慢:
df[‘max_ahead’] = df.apply(lambda x: df[‘value’][int(df[‘from’]):int(df[‘to’])].max(), axis=1)
df[‘min_ahead’] = df.apply(lambda x: df[‘value’][int(df[‘from’]):int(df[‘to’])].min(), axis=1)
有没有办法在 pandas 或 numpy 数组中加快速度?我的 df 包含数百万行,上面的代码耗时太长。
【问题讨论】:
-
请提供minimal reproducible example。特别是不要粘贴图像。这不是我们可以复制和利用来帮助制定解决方案的代码。
标签: python pandas numpy time-series