Python DataFrame 字符串日期转换为日期对象的两种方法

Alice
Alice
发布时间:2026-10-13| 6人浏览过
原创

本文介绍在Python中将DataFrame字符串列转换为日期类型的两种常用方法。首先讲解使用pd.to_datetime函数的简洁实现,其次深入解析利用datetime模块中strptime和strftime函数进行格式匹配转换的技巧。重点强调格式字符串必须与原数据完全一致,否则会导致转换失败。

使用pd.to_datetime直接转换

方法一:这是最简便的处理方式。

直接调用pd.to_datetime函数即可完成转换操作。


data['交易时间'] = pd.to_datetime(data['交易时间'])

使用datetime模块进行格式匹配转换

方法二:

该思路源自《利用Python进行数据分析》第304页的内容。

需要借助Python标准库datetime模块中的

strptime函数,具体调用方式为datetime.strptime(value,'%Y/%M/%D')。

同时涉及strftime函数,其调用形式为datetime.strftime('%Y/%M/%D')。

需要注意的是,使用datetime模块进行转换时,后续指定的字符串格式必须与原字符串的实际格式保持一致,这样才能正确解析。例如,若原始数据为yyyy-mm-dd格式,则必须使用'%Y-%M-%D'进行匹配,而不能使用'%Y/%M/%D'。


data['交易时间']=data['交易时间'].apply(lambda x:datetime.strptime(x,'%Y-%m-%d %H:%M:%S'))

观察上述代码中的'%Y-%m-%d %H:%M:%S'部分。

这里的格式字符串必须与原数值的格式完全一致才能成功转换。如果原始数据包含精确到时分秒的信息,而此处未指定%H:%M:%S,则无法完成转换。这一点务必牢记。


'''
获取指定日期的上个月
日期字符串和日期格式
'''
def getLastMonth(dtstr,dateformat):
 d=datetime.strptime(dtstr, dateformat).date()
 year = d.year
 month = d.month
 if month == 1 :#如果是本年1月的
 month = 12
 year -= 1
 else :#如果是大于1月的
 month -= 1
 return (datetime(year,month,1)).strftime(dateformat)
 
'''
两个日期之间相差的月数
包括开始日期和结束日期的当天
日期字符串和日期格式
''' 
def diffMonth(startDate,endDate,dateformat):
 start=datetime.strptime(startDate, dateformat).date()
 end=datetime.strptime(endDate, dateformat).date()
 
 startYear=start.year
 startMonth=start.month
 
 endYear=end.year
 endMonth=end.month
 
 #如果是同年
 if startYear==endYear:
 diffmonths=endMonth-startMonth
 #如果是上年
 elif endYear-startYear==1:
 diffmonths=12+endMonth-startMonth
 #如果是大于1年
 elif endYear-startYear>1:
 years=endYear-startYear
 diffmonths=(years-1)*12+12+endMonth-startMonth
 #如果开始日期大约结束日期报错
 elif endYear-startYear<0 or( endYear==startYear and endMonth-startMonth):
 print 'enddate must greater than startdate'
 
 return int(diffmonths+1)

以上内容为本文的全部介绍,希望对读者的学习有所帮助,同时也欢迎大家继续支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。