python - 计算满足时间序列中特定条件的连续行
问题描述
我有一个看起来像下面的屏幕截图的数据框(数据可在下面重现)。我需要计算 0.1 以上的连续行数,直到最后一行。换句话说,从第 18 行开始往回走,连续行的计数高于 0.1。每列的结果应该是:
48184 = 18
57256 = 8
63893 = 0
我试图在数据帧上放置一个掩码,但我不知道如何确保掩码只考虑从第 18 行向后开始的连续行。任何帮助深表感谢!
48184 57256 63893
0 0.000000 0.000000 0.000000
1 0.291498 0.004463 0.015055
2 0.430303 0.004463 0.015055
3 0.430303 0.004463 0.021197
4 0.430303 0.004463 0.006142
5 0.430303 0.029888 0.029561
6 0.430303 0.048527 0.029561
7 0.430303 0.073234 0.023419
8 0.430303 0.047989 0.041190
9 0.430303 0.077472 0.017771
10 0.430303 0.085486 0.017771
11 0.430303 0.117013 0.017771
12 0.430303 0.159811 0.057744
13 0.430303 0.182291 0.108666
14 0.430303 0.152748 0.068693
15 0.430303 0.140596 0.033474
16 0.430303 0.210749 0.097302
17 0.430303 0.201838 0.097302
18 0.430303 0.249361 0.097302
解决方案
IIUC,您可以idxmax
使用df<=0.1
:
s = df.le(0.1)
len(s) - 1 - s.loc[::-1].idxmax()
输出:
48184 18
57256 8
63893 0
dtype: int64
推荐阅读
- python - opencv和python上的局部自适应对比度增强
- reactjs - 如果不在主页上,ReactJS 仅显示标题
- r - 具有相同参数的两个图在ggplot中具有不同的x轴
- node.js - 用对象续集更新
- c# - 如何在asp中删除特定行gridview的排序。网
- git - Git拉包文件给出'致命:找不到远程参考头'
- php - 如何在 Symfony 应用程序中禁用基于 html 的表单的 CSRF 检查?
- c++ - while vs for 语句不同的行为
- java - 给定两个数组,编写一个函数来计算它们的交集
- javascript - “node bot.js”不在heroku中运行