Python 如何根据熊猫的实际日期来计算一年中的天数?

Python 如何根据熊猫的实际日期来计算一年中的天数?,python,date,datetime,pandas,Python,Date,Datetime,Pandas,我的数据框data有一个日期变量dateOpen,格式如下date\u 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']] 然而,

我的数据框
data
有一个日期变量
dateOpen
,格式如下
date\u 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']]
然而,我得到了一个月中的一天。例如,如果日期为
2013-02-21 10:12:14.3
,则上述公式将返回21。但是,我希望它返回52天,即从1月起的31天加上从2月起的21天


在Pandas中有一种简单的方法可以做到这一点吗?

不确定是否有
Pandas
内置,但在Python中,您可以获得“朱利安”日,例如:

例如:

>>> from datetime import datetime
>>> int(format(datetime(2013,2,21), '%j'))
52
在最新版本中,您可以使用:

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

>>> pd.Index(ts).dayofyear  # may work
array([52], dtype=int32)
今天的日期:2020-03-26
86

Nice-没有注意到在0.15.x的发行说明中:)@behzad.nouri刚刚更新到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
>>> pd.Index(ts).dayofyear  # may work
array([52], dtype=int32)
#To find number of days in this year sofar

from datetime import datetime
from datetime import date
today = date.today()
print("Today's date:", today)
print(int(format(today, '%j')))