【发布时间】:2016-11-11 17:33:14
【问题描述】:
我正在尝试创建一个程序,该程序将在大型时间序列数据框中选择行并仅返回斜率 (row2-row1)/(Time2-Time1) >= 前两行的斜率的行 ( row1-row0)/(Time1-Time0)。我经历了一些非常繁重的循环操作,只是为了满足循环的范围。
Time A B C
1.731806 NA NA 6.715383
1.794554 NA 6.899219 6.952729
1.79434 6.689599 6.903747 6.860664
1.928432 6.962717 7.126891 7.115988
2.000463 7.226573 7.330078 7.362645
2.090469 7.444833 7.632159 7.575328
2.175347 7.709757 7.836567 7.663173
2.765631 8.904291 8.970686 8.894602
2.905104 9.018817 8.997333 8.97221
2.980718 8.796641 8.793764 8.637462
3.058576 9.050172 9.118444 9.174402
我希望有一个简单的矢量化方法来解决这个问题,但我也想更进一步,我想返回斜率 (row3-row2)/(Time3-Time2) >= 的值行之间前两个斜率的平均值 ([(row2-row1)/(Time2-Time1)]+[row1-row0)/(Time1-Time0)])/2 或只是 (row2-row0)/(Time2-Time0 )。
数据框也非常大,所以我希望在许多列(A、B、C...Z)上迭代这个函数,这就是为什么我希望采用矢量化方法,我不在乎关于整个操作的速度。
非常感谢您对问题的任何部分的帮助。它用于在非常大的数据集中忽略进入稳定阶段(当斜率下降时)的微生物生长数据。 NA 的仅供参考的数据点存在,因为我创建了一个条件行来过滤掉微生物生长的滞后阶段。
非常感谢!!!
【问题讨论】:
标签: python pandas numpy dataframe