如何用Pandas基于今日日期加天数列生成新日期列
嗨,我来帮你搞定这个需求!要给你的DataFrame添加「Predicted Service Date」新列,把「Days till Service」的天数加到指定日期(或今日)上,用pandas结合datetime模块就能轻松实现,下面是具体步骤和代码:
解决方案步骤
- 导入必要的库:pandas用于数据处理,datetime用于日期操作
- 加载或构造你的目标DataFrame
- 确定基准日期(可以是真实今日,也可以是示例中的固定日期)
- 将天数列转换为时间间隔类型,与基准日期相加得到预测服务日期
- 可选:将日期格式化为你需要的字符串格式(如示例中的DD/MM/YYYY)
完整代码示例
import pandas as pd from datetime import datetime # 1. 构造你的示例DataFrame(如果是已有的df,这步直接跳过) data = {'Days till Service': [0, 28, 7, 54, 0, 6, 28, 0, 16, 200]} df = pd.DataFrame(data) # 2. 选择基准日期:二选一即可 ## 选项A:使用真实的今日日期 today = datetime.today().date() ## 选项B:使用示例中的固定日期16/04/2018 # specified_date = datetime.strptime('16/04/2018', '%d/%m/%Y').date() # 3. 计算预测服务日期:把天数转成时间间隔后和基准日期相加 df['Predicted Service Date'] = df['Days till Service'].apply(lambda x: today + pd.Timedelta(days=x)) # 4. 可选:格式化为和示例一致的DD/MM/YYYY字符串格式 df['Predicted Service Date'] = df['Predicted Service Date'].dt.strftime('%d/%m/%Y') # 查看最终结果 print(df)
关键代码解释
pd.Timedelta(days=x):把整数天数转换成pandas可识别的时间间隔对象,这样才能和日期类型做加法运算datetime.strptime('16/04/2018', '%d/%m/%Y'):如果需要固定使用某个日期而非今日,用这个方法把字符串格式的日期转成datetime对象,再提取date部分dt.strftime('%d/%m/%Y'):把datetime类型的日期转成指定格式的字符串,确保输出和你的示例完全匹配
运行这段代码后,你的DataFrame就会生成符合要求的「Predicted Service Date」列啦!
内容的提问来源于stack exchange,提问作者3kstc
相关产品推荐
相关产品推荐

