繁体   English   中英

如何计算 pandas dataframe 中两个不同值之间的行数?

[英]How to calculate the number of rows between two different values in a pandas dataframe?

我正在尝试计算一个人在睡眠期间醒来的次数,我认为我正在使用的数据最直接的方法是计算包含“睡眠”和“唤醒”标签的行之间的行数向上”

[数据框图片][1] [1]: https://i.stack.imgur.com/69SCo.png

我为 imgur 链接道歉,在我达到声誉级别 10 之前我不允许发布图片。图片可能不是必需的。

我找到了这个线程,但它仅在尝试计算具有相同值的两行之间的行数时才有效。

如何计算 pandas dataframe 的两个值之间的行数?

我会按照以下方式进行,假设您想在以下 dataframe 中获取 START 和 STOP 之间的记录总数

import pandas as pd
df = pd.DataFrame({"action":["A","B","C","START","D","E","STOP","G","START","H","STOP","I"]})

那么你可能会做

total = 0
inside = False
for i in df["action"]:
    if i=="START":
        inside = True
    elif i=="STOP":
        inside = False
    elif inside:
        total += 1
print(total)  # 3

说明:简单的 for 循环,它最多执行一个基于当前元素的操作:

  • 对于 START 内部设置为 True
  • 对于 STOP 内部设置为 False
  • 如果里面增加总数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM