【发布时间】:2021-04-01 17:45:26
【问题描述】:
我有大量的秒级传感器数据,数十亿行跨越数天甚至数周。我也有一个事件的数万个开始和结束时间的列表,还有第二个。我正在尝试识别每个开始和结束时间内的传感器数据行,并在事件列中将该行标记为真,但速度非常慢。事件不能重叠。
我的尝试如下:
sensor_data = pd.DataFrame( columns = ["Event"], index =
pd.date_range("2018-01-01", periods=15, freq="s"))
event_data = pd.DataFrame(data = {"Start":["2018-01-01 00:00:01","2018-01-01 00:00:08"],
"End":["2018-01-01 00:00:03","2018-01-01 00:00:12"]})
sensor_data["Event"] = 0
event_data["Start"] = pd.to_datetime(event_data["Start"],utc=True)
event_data["End"] = pd.to_datetime(event_data["End"],utc=True)
for i in range(event_data.shape[0]):
start = event_data["Start"].iloc[i]
end = event_data["End"].iloc[i]
event_indexes = sensor_data.loc[start:end].index
sensor_data.loc[event_indexes,"Event"] = 1
【问题讨论】:
-
事件可以重叠吗?
-
请从 df 发布一些示例数据
标签: python pandas date optimization