Python 数据框中日期范围内的日期时间标记列表

Python 数据框中日期范围内的日期时间标记列表,python,pandas,Python,Pandas,我环顾了四周。 )但是在这上面找不到任何东西 我有一个日期时间列表和一个包含10k+行的数据框,包括开始时间和结束时间(格式为datetimes) dataframe有效地列出了仪器运行的参数 该列表描述了报警事件发生的时间 datetime列表项都在dataframe中的一行内(即开始时间和结束时间之间)。是否有一种简单的方法来定位包含报警时间的时间范围的行?(很抱歉这里的措词不好!) 例如 在这里,一个标志将与第4行、第13行和第21行相反。您正在调用列开始日期和结束日期,但在for you

我环顾了四周。 )但是在这上面找不到任何东西

我有一个日期时间列表和一个包含10k+行的数据框,包括开始时间和结束时间(格式为datetimes)

dataframe有效地列出了仪器运行的参数

该列表描述了报警事件发生的时间

datetime列表项都在dataframe中的一行内(即开始时间和结束时间之间)。是否有一种简单的方法来定位包含报警时间的时间范围的行?(很抱歉这里的措词不好!)

例如


在这里,一个标志将与第4行、第13行和第21行相反。

您正在调用列
开始日期
结束日期
,但在for you中使用
开始时间
结束时间

试试这个:

将熊猫作为pd导入
df=pd.数据帧({'Alarms':[“18/07/19 14:56:21”,“19/07/19 15:05:15”,“20/07/19 15:46:00”]))
df['Alarms']=pd.to_datetime(df['Alarms'])
报警=列表(df.alarms.unique())
#包含开始和结束时间的运行数据帧
n=33
rng1=pd.日期范围('2019-07-18','2019-07-22',期间=n)
rng2=pd.日期范围('2019-07-18 03:00:00','2019-07-22 03:00:00',期间=n)
df=pd.DataFrame({'start\u date':rng1,'end\u date':rng2})
对于警报中的i:
df.loc[(df.start_datei),“标志”]=“报警”
打印(df[df['Flag']=='Alarm']['Flag']))
输出:

4     Alarm
13    Alarm
21    Alarm
Name: Flag, dtype: object
您可以在此处使用:

[外]


@没问题,伙计。快乐编码
# making list of datetimes for the alarms

df = pd.DataFrame({'Alarms':["18/07/19 14:56:21", "19/07/19 15:05:15", "20/07/19 15:46:00"]})

df['Alarms'] = pd.to_datetime(df['Alarms'])

alarms = list(df.Alarms.unique())

# dataframe of runs containing start and end times
n=33
rng1 = pd.date_range('2019-07-18', '2019-07-22', periods=n)
rng2 = pd.date_range('2019-07-18 03:00:00', '2019-07-22 03:00:00', periods=n)
df = pd.DataFrame({ 'start_date': rng1, 'end_Date': rng2})
4     Alarm
13    Alarm
21    Alarm
Name: Flag, dtype: object
# Create and set IntervalIndex
intervals = pd.IntervalIndex.from_arrays(df.start_date, df.end_Date)
df = df.set_index(intervals)

# Update using loc
df.loc[alarms, 'flag'] = 'alarm'

# Finally, reset_index
df = df.reset_index(drop=True)
            start_date            end_Date   flag
0  2019-07-18 00:00:00 2019-07-18 03:00:00    NaN
1  2019-07-18 03:00:00 2019-07-18 06:00:00    NaN
2  2019-07-18 06:00:00 2019-07-18 09:00:00    NaN
3  2019-07-18 09:00:00 2019-07-18 12:00:00    NaN
4  2019-07-18 12:00:00 2019-07-18 15:00:00  alarm
5  2019-07-18 15:00:00 2019-07-18 18:00:00    NaN
6  2019-07-18 18:00:00 2019-07-18 21:00:00    NaN
7  2019-07-18 21:00:00 2019-07-19 00:00:00    NaN
8  2019-07-19 00:00:00 2019-07-19 03:00:00    NaN
9  2019-07-19 03:00:00 2019-07-19 06:00:00    NaN
10 2019-07-19 06:00:00 2019-07-19 09:00:00    NaN
11 2019-07-19 09:00:00 2019-07-19 12:00:00    NaN
12 2019-07-19 12:00:00 2019-07-19 15:00:00    NaN
13 2019-07-19 15:00:00 2019-07-19 18:00:00  alarm
14 2019-07-19 18:00:00 2019-07-19 21:00:00    NaN
15 2019-07-19 21:00:00 2019-07-20 00:00:00    NaN
16 2019-07-20 00:00:00 2019-07-20 03:00:00    NaN
17 2019-07-20 03:00:00 2019-07-20 06:00:00    NaN
18 2019-07-20 06:00:00 2019-07-20 09:00:00    NaN
19 2019-07-20 09:00:00 2019-07-20 12:00:00    NaN
20 2019-07-20 12:00:00 2019-07-20 15:00:00    NaN
21 2019-07-20 15:00:00 2019-07-20 18:00:00  alarm
22 2019-07-20 18:00:00 2019-07-20 21:00:00    NaN
23 2019-07-20 21:00:00 2019-07-21 00:00:00    NaN
24 2019-07-21 00:00:00 2019-07-21 03:00:00    NaN
25 2019-07-21 03:00:00 2019-07-21 06:00:00    NaN
26 2019-07-21 06:00:00 2019-07-21 09:00:00    NaN
27 2019-07-21 09:00:00 2019-07-21 12:00:00    NaN
28 2019-07-21 12:00:00 2019-07-21 15:00:00    NaN
29 2019-07-21 15:00:00 2019-07-21 18:00:00    NaN
30 2019-07-21 18:00:00 2019-07-21 21:00:00    NaN
31 2019-07-21 21:00:00 2019-07-22 00:00:00    NaN
32 2019-07-22 00:00:00 2019-07-22 03:00:00    NaN