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

如何在Python中基于mm-dd-yy格式日期筛选数据集行?

解决Pandas中基于mm-dd-yy格式日期筛选数据的问题

嘿,作为Python新手遇到日期格式的困扰太正常了,我来一步步帮你搞定这个筛选需求!

首先,你之前尝试转换日期格式没成功,大概率是没在pd.to_datetime里指定正确的格式参数。咱们先把StartDate列转换成Pandas的datetime类型,这样后续的日期筛选会非常灵活可靠:

步骤1:正确转换日期格式

使用pd.to_datetime并指定格式%m-%d-%y(完全对应你数据里的mm-dd-yy格式),就能准确解析你的日期数据:

import pandas as pd
import numpy as np

# 你的示例数据集
date = ["12-28-12", "12-29-12", "12-30-12", "01-12-13", "02-25-13", "02-10-13", "03-28-13", "03-29-13"]
df = pd.DataFrame({'Line1': np.arange(8), "StartDate": date})

# 将日期列转换为Pandas datetime类型
df['StartDate'] = pd.to_datetime(df['StartDate'], format='%m-%d-%y')

步骤2:筛选2013年及以后的数据

转换完成后,我们可以通过dt.year提取日期的年份,轻松筛选出2013年及之后的行:

# 筛选保留2013年及以后的数据
filtered_df = df[df['StartDate'].dt.year >= 2013]

print(filtered_df)

运行这段代码后,你会得到想要的结果——前三行2012年的数据被成功删除:

Line1  StartDate
3      3 2013-01-12
4      4 2013-02-25
5      5 2013-02-10
6      6 2013-03-28
7      7 2013-03-29

额外小技巧:按精确日期范围筛选

如果你想更精准地筛选(比如从2013年1月1日开始),也可以直接和datetime对象比较,这种方式在需要筛选具体日期区间时更灵活:

filtered_df = df[df['StartDate'] >= pd.to_datetime('2013-01-01')]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:20:30