Skip to main content
 首页 » 编程设计

python之如何按星期几和一天中的小时过滤 Pandas DatetimeIndex

2025年05月04日15zhwl

我有一个 pandas DatetimeIndex,我想按照星期几和一天中的小时匹配列表的标准来过滤索引。 例如,我有一个元组列表,指示每个时间戳的有效(星期几、小时、分钟):

[(4, 6), (5, 7)] 

最终索引应该只包含星期五(day_of_week = 4)小时 6 或星期六(day_of_week = 5)小时 7 的日期时间。

假设输入数据框是这样的:

2016-04-02 06:30:00  1 
2016-04-02 06:45:00  2 
2016-04-02 07:00:00  3 
2016-04-02 07:15:00  4 
2016-04-03 07:30:00  5 
2016-04-03 07:45:00  6 
2016-04-03 08:00:00  7 

过滤后应该是这样的:

2016-04-02 06:30:00  1 
2016-04-02 06:45:00  2 
2016-04-03 07:30:00  5 

因为我只保留列表 [(4, 6), (5, 7)]

中的星期几和一天中的小时的索引

请您参考如下方法:

您可以将 index 中的 dayofweek 和 hour 方法存储在变量中,然后将它们与 iloc 过滤:

dayofweek = df.index.dayofweek 
hour = df.index.hour 
 
df.iloc[((dayofweek == 4) & (hour == 6)) | ((dayofweek == 5) & (hour == 7))]