另一种使用query
. 使用 Python 3.9 测试。
from Pandas import Timestamp
from datetime import time
df = pd.DataFrame({"timestamp":
[Timestamp("2017-01-03 09:30:00.049"), Timestamp("2017-01-03 09:30:00.049"),
Timestamp("2017-12-29 16:12:34.214"), Timestamp("2017-12-29 16:17:19.006")]})
df["time"] = df.timestamp.dt.time
start_time = time(9,20,0)
end_time = time(10,0,0)
df_times = df.query("time >= @start_time and time <= @end_time")
在:
timestamp
2017-01-03 09:30:00.049
2017-01-03 09:30:00.049
2017-12-29 16:12:34.214
2017-12-29 16:17:19.006
出去:
timestamp time
2017-01-03 09:30:00.049 09:30:00.049000
2017-01-03 09:30:00.049 09:30:00.049000
作为奖励,可以在查询中使用任意复杂的表达式,例如选择两个不同时间范围内的所有内容(这是不可能的between_time
)。