如何使用熊猫根据实际日期查找一年中的天数?

rol*_*and 3 python datetime date pandas

我的数据框data有一个日期变量dateOpen,格式如下date_format = "%Y-%m-%d %H:%M:%S.%f",我希望有一个新列openDay,它是基于一年365天的天数.我尝试应用以下内容

data['dateOpen'] = [datetime.strptime(dt, date_format) for dt in data['dateOpen']]
data['openDay'] = [dt.day for dt in data['dateOpen']]
Run Code Online (Sandbox Code Playgroud)

但是,我得到了这个月的一天.例如,如果日期是,2013-02-21 10:12:14.3则上述公式将返回21.但是,我希望它返回52,即从1月起的31天加上2月份的21天.

在熊猫中有一个简单的方法吗?

beh*_*uri 6

在最新的 pandas上,您可以使用日期时间属性:

>>> ts = pd.Series(pd.to_datetime(['2013-02-21 10:12:14.3']))
>>> ts
0   2013-02-21 10:12:14.300000
dtype: datetime64[ns]
>>> ts.dt.dayofyear
0    52
dtype: int64
Run Code Online (Sandbox Code Playgroud)

在旧版本上,您可以转换为a DatetimeIndex然后使用.dayofyear属性:

>>> pd.Index(ts).dayofyear  # may work
array([52], dtype=int32)
Run Code Online (Sandbox Code Playgroud)

  • 很好 - 没有注意到0.15.x的发行说明:) (2认同)