如何在Python Pandas中快速递增YYYY-MM-DD格式的日期字符串?
在Pandas中快速递增日期字符串的方法
如果你想高效地把YYYY-MM-DD格式的日期字符串加一天并返回同格式结果,Pandas提供了几种简洁且性能不错的方案,完全不用手动处理闰年、月末这些麻烦的边界情况:
方法一:使用
Timestamp+Timedelta
这是处理单个日期最直接的方式,Timestamp可以直接解析日期字符串,加上一天的时间差后再格式化回字符串:import pandas as pd d1 = '2018-02-10' # 转成Timestamp对象并加1天 d1_inc_obj = pd.Timestamp(d1) + pd.Timedelta(days=1) # 格式化为目标字符串 d1_inc = d1_inc_obj.strftime('%Y-%m-%d') # 输出结果:'2018-02-11'方法二:使用
pd.to_datetime+DateOffsetpd.to_datetime同样能快速解析日期,搭配DateOffset也能实现日期递增,效果和上面一致:d1_inc_obj = pd.to_datetime(d1) + pd.DateOffset(days=1) d1_inc = d1_inc_obj.strftime('%Y-%m-%d')批量处理场景
如果是处理一组日期字符串(比如一个Series),直接用pd.to_datetime批量转换后再统一递增,效率会更高:date_series = pd.Series(['2018-02-10', '2020-02-28', '2023-12-31']) incremented_dates = (pd.to_datetime(date_series) + pd.Timedelta(days=1)).dt.strftime('%Y-%m-%d') # 结果会是:0 '2018-02-11',1 '2020-02-29',2 '2024-01-01'
这些方法都能自动处理诸如闰年2月、月末最后一天等特殊情况,而且在性能上表现优异,不管是单个还是批量日期都能快速完成操作。
内容的提问来源于stack exchange,提问作者afshin
相关产品推荐
相关产品推荐

