在 Pandas 数据框中查找段
Find segments in Pandas dataframe
我想找到由一些布尔值指示的段的开始和结束时间戳。
数据框如下所示:
t
2021-06-19 21:29:38 True
2021-06-19 21:29:48 True
2021-06-19 21:29:58 True
2021-06-19 21:30:08 False
2021-06-19 21:30:18 False
2021-06-19 21:30:28 False
2021-06-19 21:30:38 False
2021-06-19 21:30:48 False
2021-06-19 21:30:58 True
2021-06-19 21:31:08 True
2021-06-19 21:31:18 True
2021-06-19 21:31:28 True
2021-06-19 21:31:38 True
2021-06-19 21:31:48 True
2021-06-19 21:31:58 True
2021-06-19 21:32:08 True
2021-06-19 21:32:18 True
2021-06-19 21:32:28 True
2021-06-19 21:32:38 True
2021-06-19 21:32:48 True
Name: AT, dtype: bool
现在我需要提取两个片段。第一个是从 21:29:38 到 21:29:58,第二个是从 21:30:58 到 21:32:48。有什么办法可以做到这一点?
我尝试过滤 True 值,但后来我错过了我不想包括的时间范围。
在否定条件上使用cumsum()
:
for group, data in s[s].groupby((~s).cumsum()):
print(data)
输出:
t
2021-06-19 21:29:38 True
2021-06-19 21:29:48 True
2021-06-19 21:29:58 True
Name: AT, dtype: bool
t
2021-06-19 21:30:58 True
2021-06-19 21:31:08 True
2021-06-19 21:31:18 True
2021-06-19 21:31:28 True
2021-06-19 21:31:38 True
2021-06-19 21:31:48 True
2021-06-19 21:31:58 True
2021-06-19 21:32:08 True
2021-06-19 21:32:18 True
2021-06-19 21:32:28 True
2021-06-19 21:32:38 True
2021-06-19 21:32:48 True
Name: AT, dtype: bool
我想找到由一些布尔值指示的段的开始和结束时间戳。 数据框如下所示:
t
2021-06-19 21:29:38 True
2021-06-19 21:29:48 True
2021-06-19 21:29:58 True
2021-06-19 21:30:08 False
2021-06-19 21:30:18 False
2021-06-19 21:30:28 False
2021-06-19 21:30:38 False
2021-06-19 21:30:48 False
2021-06-19 21:30:58 True
2021-06-19 21:31:08 True
2021-06-19 21:31:18 True
2021-06-19 21:31:28 True
2021-06-19 21:31:38 True
2021-06-19 21:31:48 True
2021-06-19 21:31:58 True
2021-06-19 21:32:08 True
2021-06-19 21:32:18 True
2021-06-19 21:32:28 True
2021-06-19 21:32:38 True
2021-06-19 21:32:48 True
Name: AT, dtype: bool
现在我需要提取两个片段。第一个是从 21:29:38 到 21:29:58,第二个是从 21:30:58 到 21:32:48。有什么办法可以做到这一点? 我尝试过滤 True 值,但后来我错过了我不想包括的时间范围。
在否定条件上使用cumsum()
:
for group, data in s[s].groupby((~s).cumsum()):
print(data)
输出:
t
2021-06-19 21:29:38 True
2021-06-19 21:29:48 True
2021-06-19 21:29:58 True
Name: AT, dtype: bool
t
2021-06-19 21:30:58 True
2021-06-19 21:31:08 True
2021-06-19 21:31:18 True
2021-06-19 21:31:28 True
2021-06-19 21:31:38 True
2021-06-19 21:31:48 True
2021-06-19 21:31:58 True
2021-06-19 21:32:08 True
2021-06-19 21:32:18 True
2021-06-19 21:32:28 True
2021-06-19 21:32:38 True
2021-06-19 21:32:48 True
Name: AT, dtype: bool