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