Pandas DataFrame中object类型日期列转datetime及筛选问题
Pandas Object类型字段转Datetime并按日期筛选
你的date_start字段值带双引号,且之前指定的格式字符串错误(多了逗号),这是转换失败的核心原因。按以下步骤处理:
1. 清除字段中的双引号
原始数据每个日期值都包含双引号,需要先去除:
df['date_start'] = df['date_start'].str.replace('"', '')
2. 转换为Datetime类型
使用正确的格式字符串(日期和时间之间是空格而非逗号):
df['date_start'] = pd.to_datetime(df['date_start'], format='%Y-%m-%d %H:%M:%S')
如果不确定格式,也可以省略format参数让Pandas自动推断,效率稍低但更省心:
df['date_start'] = pd.to_datetime(df['date_start'])
3. 按日期筛选数据
转换完成后,就可以直接按日期条件筛选:
- 筛选指定日期(比如2022-11-24)的所有数据:
filtered_df = df[df['date_start'].dt.date == pd.to_datetime('2022-11-24').date()]
- 筛选日期范围(比如2022-11-24到2022-11-25):
start_date = pd.to_datetime('2022-11-24') end_date = pd.to_datetime('2022-11-25') filtered_df = df[(df['date_start'] >= start_date) & (df['date_start'] < end_date)]
内容的提问来源于stack exchange,提问作者Alan Wake
相关产品推荐
相关产品推荐

