在Pandas DataFrame中截取日期时间中的日期部分
嗨,这个需求太常见了,给你几个简单好用的方案,根据你的后续需求选就行:
方案1:转成Pandas时间类型后提取日期(推荐用于后续需时间操作的场景)
Pandas的pd.to_datetime()可以完美识别你这种ISO格式的时间字符串,转成时间类型后,就能轻松提取年月日:
import pandas as pd # 假设你的DataFrame是df,时间列名为'timestamp' df['timestamp'] = pd.to_datetime(df['timestamp']) # 提取为Python date对象(格式是YYYY-MM-DD的date类型) df['date_only'] = df['timestamp'].dt.date # 或者提取为字符串格式的年月日 df['date_str'] = df['timestamp'].dt.strftime('%Y-%m-%d')
这个方法的好处是,转成时间类型后,你后续如果要做日期筛选、排序、计算时间差之类的操作会非常方便。
方案2:直接字符串截取(适合仅需字符串结果的场景)
既然你的时间格式是固定的YYYY-MM-DDTHH:MM:SS,而且时间部分都是00:00:00,那直接对字符串操作更高效,不需要转时间类型:
# 方法A:按'T'分割,取分割后的第一部分 df['date_str'] = df['timestamp'].str.split('T').str[0] # 方法B:直接截取前10个字符(因为YYYY-MM-DD刚好是10位) df['date_str'] = df['timestamp'].str[:10]
这个方法速度更快,适合只需要拿到字符串形式年月日的场景。
选哪个就看你之后要不要对这个日期列做时间相关的操作啦~
内容的提问来源于stack exchange,提问作者Life Long Learner
相关产品推荐
相关产品推荐

