You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python Pandas DataFrame中计算日期的年内累计天数

在Pandas中计算日期的年内累计天数

针对你给出的DataFrame,要计算每个日期对应的年内累计天数,可以用以下两种高效方法实现:

方法一:使用内置的dt.dayofyear属性(推荐)

Pandas的datetime类型自带dayofyear属性,直接返回该日期在当年的累计天数,无需手动计算各月天数总和,效率最高:

import pandas as pd

# 构造你的DataFrame
df = pd.DataFrame({
    'Datetime': [
        '2022-06-01 00:00:00',
        '2022-06-01 00:01:00',
        '2022-06-01 00:02:00',
        '2022-06-01 00:03:00',
        '2022-06-01 00:04:00',
        '2022-06-01 00:05:00'
    ]
})

# 确保Datetime列为datetime类型(若原数据是字符串则执行这一步)
df['Datetime'] = pd.to_datetime(df['Datetime'])

# 新增年内累计天数列
df['Day_of_Year'] = df['Datetime'].dt.dayofyear

执行后,Day_of_Year列的值为152(2022年1-5月总天数151加1),符合你的需求,且时间部分不会影响结果。

方法二:手动计算日期差(适合理解逻辑)

如果想手动实现“当年1月1日到目标日期的天数差加1”的逻辑,可以这样写:

# 生成当年1月1日的时间戳
df['Year_Start'] = df['Datetime'].apply(lambda x: pd.Timestamp(year=x.year, month=1, day=1))

# 计算天数差并加1得到累计天数
df['Day_of_Year'] = (df['Datetime'] - df['Year_Start']).dt.days + 1

这种方法和方法一结果完全一致,适合需要自定义逻辑的场景。

内容的提问来源于stack exchange,提问作者user20737601

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 21:35:15