如何将日期列转换为距起始日期的天数统计?
计算各日期距起始日期的天数解决方案
直接用以下代码即可实现需求:
import pandas as pd df = pd.DataFrame({'year': [2015, 2015, 2015], 'month': [2, 2, 2], 'day': [4, 5, 10]}) # 将年月日列转为日期格式,存入新列Date df['Date'] = pd.to_datetime(df) # 计算每个日期与起始日期的天数差 df['Days_from_start'] = (df['Date'] - df['Date'].iloc[0]).dt.days # 输出目标列 print(df[['Date', 'Days_from_start']])
步骤说明:
- 第一步通过
pd.to_datetime(df)自动识别DataFrame中的year/month/day列,合并生成标准的日期序列,存入Date列。 - 第二步用每个日期减去起始日期(
df['Date'].iloc[0]取第一行的日期),得到的时间差是Timedelta类型,调用.dt.days即可提取天数数值,赋值给Days_from_start列。 - 最后筛选出需要的两列,就得到你期望的结果。
运行后输出:
Date Days_from_start 0 2015-02-04 0 1 2015-02-05 1 2 2015-02-10 6
内容的提问来源于stack exchange,提问作者Cam
相关产品推荐
相关产品推荐

