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

Pandas:如何基于指定星期与月份筛选datetime列数据

按指定星期和月份筛选Datetime列数据的实现方案

嘿,我来帮你搞定这个筛选需求!假设你用的是Python的pandas来处理这份数据(毕竟它处理时间序列数据超级顺手),下面是一步步的实现方法:

步骤1:确保时间列是datetime类型

首先得把你的Start Time列从字符串转换成pandas能识别的datetime类型,不然没法提取星期和月份信息:

import pandas as pd

# 先读取你的数据(示例)
df = pd.read_csv('your_trip_data.csv')

# 转换时间列为datetime类型
df['Start Time'] = pd.to_datetime(df['Start Time'])

步骤2:定义用户输入的目标筛选条件

假设用户输入的目标星期是"Sunday",目标月份是"June",我们把它们存成变量:

target_weekday = "Sunday"  # 用户指定的星期名称
target_month = "June"      # 用户指定的月份名称

步骤3:执行筛选操作

利用pandas的dt访问器提取星期和月份的英文名称(dt.day_name() 提取星期,dt.month_name() 提取月份),然后用逻辑“与”(&)同时匹配两个条件:

# 筛选符合条件的数据
filtered_df = df[(df['Start Time'].dt.day_name() == target_weekday) & 
                 (df['Start Time'].dt.month_name() == target_month)]

# 查看筛选结果
print(filtered_df)

针对旧版pandas的兼容方案

如果你的pandas版本低于1.1.0,dt.day_name() 和 dt.month_name() 这两个方法还不存在,可以用下面的方式处理:

# 映射月份数字到英文名称
month_mapping = {
    1: 'January', 2: 'February', 3: 'March', 4: 'April',
    5: 'May', 6: 'June', 7: 'July', 8: 'August',
    9: 'September', 10: 'October', 11: 'November', 12: 'December'
}

# 提取星期和月份名称
df['Weekday Name'] = df['Start Time'].dt.weekday_name  # 旧版提取星期名称的方法
df['Month Name'] = df['Start Time'].dt.month.map(month_mapping)

# 筛选数据
filtered_df = df[(df['Weekday Name'] == target_weekday) & 
                 (df['Month Name'] == target_month)]

小提示

  • 这两个方法返回的都是英文全称,刚好和用户输入的Sunday、January这类格式完全匹配,不需要额外转换
  • 如果需要忽略大小写,可以在匹配时加.str.lower(),比如df['Start Time'].dt.day_name().str.lower() == target_weekday.lower()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:09:31