确定一个日期/时间范围如何与第二个日期/时间范围重叠?[英] Determining how one date/time range overlaps with the second date/time range?

本文是小编为大家收集整理的关于确定一个日期/时间范围如何与第二个日期/时间范围重叠?的处理方法,想解了确定一个日期/时间范围如何与第二个日期/时间范围重叠?的问题怎么解决?确定一个日期/时间范围如何与第二个日期/时间范围重叠?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在从具有6列的test.csv文件中锻炼.我需要打开csv,并在两个范围之间看到上圈.

这就是csv的样子:

type1 type1_start                    type1_end
a    2019-04-01T00:43:18.046Z    2019-04-01T00:51:35.013Z
b    2019-04-01T02:16:46.490Z    2019-04-01T02:23:23.887Z
c    2019-04-01T03:49:31.981Z    2019-04-01T03:55:16.153Z
d    2019-04-01T05:21:22.131Z    2019-04-01T05:28:05.469Z

type2   type2_start          type2_end
1    2019-04-01T00:35:12.061Z    2019-04-01T00:37:00.783Z
2    2019-04-02T00:37:15.077Z    2019-04-02T00:39:01.393Z
3    2019-04-03T00:39:18.268Z    2019-04-03T00:41:01.844Z
4    2019-04-04T00:41:21.576Z    2019-04-04T00:43:02.071Z

我正在使用以前对此评论的逻辑.但是我无法使csv列起作用.如果我实际将日期/时间输入变量,我一直在遇到此错误ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().!

致力于正确获取时间范围交叉点正确

colnames = ['type1', 'type1_start', 'type1_end', 'type2', 
'type2_start', 'type2_end']
data = pd.read_csv('test.csv', names=colnames)

A_start = data['type1_start']
A_end = data['type1_end']
B_start= data['type2_start']
B_end = data['type2_end']
type1 = data['type1']
type2 = data['type2']

if A_start < B_end and B_start < A_end:
    print("{} and {} They overlap".format(type1, type2))
else:
    print("{} and {} They do not overlap".format(type1, type2))

有人可以帮助吗?

我的CSV文件很长,有六列.而且我比Type1行要多于type1行.我需要检查type2范围是否属于type1范围.

推荐答案

我认为您不需要为此导入任何模块.可以将这些时间戳比较为字符串(国际格式).

确定两个范围A和B相交是否是一个简单的条件:

  if A.start < B.end and B.start < A.end:  # A and B have an overlap

本文地址:https://www.itbaoku.cn/post/1727827.html