仍在尝试学习 Pandas。假设数据帧包含偶数类型事件的开始和结束以及事件的 Val。这是一个例子:
>>> df = pd.DataFrame({ 'start': ["11:00","13:00", "14:00"], 'end': ["12:00","14:00", "15:00"], 'event_type':[1,2,3], 'Val':['a','b','c']})
>>> df['start'] = pd.to_datetime(df['start'])
>>> df['end'] = pd.to_datetime(df['end'])
>>> df
Start End event_type Val
0 2021-03-05 11:00:00 2021-03-05 12:00:00 1 a
1 2021-03-05 13:00:00 2021-03-05 14:00:00 2 b
2 2021-03-05 14:00:00 2021-03-05 15:00:00 3 c
例如,查找从 11:10
开始到 11:30
结束的 event_type 1< 的事件的对应值的最佳方法是什么
,在 Val 列中。例如,对于此事件示例,由于开始时间和结束时间在 df 的第一行内,因此它应该返回 a
。
最佳答案
尝试pd.IntervalIndex.from_arrays
df.index = pd.IntervalIndex.from_arrays(left = df.start, right = df.end)
输出如下
df.loc['11:30']
Out[73]:
start 2021-03-05 11:00:00
end 2021-03-05 12:00:00
event_type 1
Val a
Name: (2021-03-05 11:00:00, 2021-03-05 12:00:00], dtype: object
df.loc['11:30','Val']
Out[75]: 'a'
关于python - 如果某个时间在某个时间范围内,则查找该时间并返回 Pandas 中的相应值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66502306/