You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术问询:筛选每周时段数据,创建含周一12点至周三17点行的新df

筛选每周周一12:00至周三17:00的数据行

别担心,我来帮你搞定这个时间范围的筛选问题。首先得确保你的DataFrame里有一个datetime类型的时间列(假设列名叫timestamp),如果是字符串格式的话,第一步先把它转成datetime:

import pandas as pd

# 先把时间列转换为datetime类型(如果还没转的话)
df['timestamp'] = pd.to_datetime(df['timestamp'])

接下来,我们需要基于星期几和具体时间来构建筛选条件。这里要注意:pandas里dt.weekday返回的是0(周一)到6(周日)的数字,所以我们可以分三个情况组合条件:

  1. 周一(weekday=0):时间 >= 12:00:00
  2. 周二(weekday=1):全天所有时间都符合要求
  3. 周三(weekday=2):时间 <= 17:00:00

把这些条件用逻辑运算符组合起来,就能得到目标数据了:

# 定义各个筛选条件
cond_monday = (df['timestamp'].dt.weekday == 0) & (df['timestamp'].dt.time >= pd.to_datetime('12:00:00').time())
cond_tuesday = df['timestamp'].dt.weekday == 1
cond_wednesday = (df['timestamp'].dt.weekday == 2) & (df['timestamp'].dt.time <= pd.to_datetime('17:00:00').time())

# 组合条件并生成新的DataFrame
filtered_df = df[cond_monday | cond_tuesday | cond_wednesday]

额外注意事项

  • 如果你的时间列带时区信息,记得确保所有时间的时区统一,避免因时区偏差导致筛选出错。
  • 可以先打印几个样本行的dt.weekday和dt.time值,确认时间列解析正确,避免星期几对应错误导致结果不符合预期。
  • 若时间列包含毫秒等精度信息,dt.time会自动提取时分秒部分进行比较,不会影响筛选逻辑。

内容的提问来源于stack exchange,提问作者Tie_24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:54:48