Python 属性错误:';时间DeltaProperty';对象没有属性';年';熊猫

Python 属性错误:';时间DeltaProperty';对象没有属性';年';熊猫,python,datetime,pandas,Python,Datetime,Pandas,在Pandas中,为什么timedeltaproperty对象没有属性“years” 毕竟,datetime对象有这个属性 对于一个关注时间的物体来说,这似乎是很自然的事情。特别是当它已经有小时、秒等属性时 是否有一个变通方法,使我的专栏,其中充满了像 10060天, 可以转换成年吗?或者更好的方法是,仅转换为年的整数表示?TimeDeltaProperty没有年或月属性,因为根据TimeDeltaProperty。是的- 用于序列值的datetimelike属性的访问器对象 但是,月或年没有固

在Pandas中,为什么
timedeltaproperty
对象没有属性“years”

毕竟,
datetime
对象有这个属性

对于一个关注时间的物体来说,这似乎是很自然的事情。特别是当它已经有小时、秒等属性时

是否有一个变通方法,使我的专栏,其中充满了像
10060天


可以转换成年吗?或者更好的方法是,仅转换为年的整数表示?

TimeDeltaProperty
没有
属性,因为根据TimeDeltaProperty。是的-

用于序列值的datetimelike属性的访问器对象

但是,
没有固定的定义

1个月
可以根据
本身的不同天数,如1月->31天,4月->30天等

1个月
也可以根据年份采用不同的值(如果是2月),如果年份是2004年,2月有29天,如果年份是2003年,2月有28天,等等

年份的情况相同
,它可以根据具体年份采用不同的值,例如,如果年份是2003年,则有365天;如果年份是2004年,则有366天

因此,像将
10060天
转换为
这样的要求是不准确的,哪个


如前所述,这些天数对应的准确年数取决于这些天数所代表的实际年数。

此解决方法使您更接近实际年数

round((df[“事故日期”]-df[“Iw出生日期”]).dt.days/365,1)
我使用.astype('timedelta64[Y]')然后.astype('int')获得整数年:

df['age'] = (pd.Timestamp('now') - df.birthDate).astype('timedelta64[Y]').astype('int')
输出:

nflId   height  weight  birthDate   collegeName           position  displayName    age
0   2539334 72  190 1990-09-10      Washington              CB  Desmond Trufant    30
1   2539653 70  186 1988-11-01      Southeastern Louisiana  CB  Robert Alford      31
2   2543850 69  186 1991-12-18      Purdue                  SS  Ricardo Allen      28
3   2555162 73  227 1994-11-04      Louisiana State         MLB Deion Jones        25
4   2555255 75  232 1993-07-01      Minnesota               OLB DeVondre Campbell  27

因为一年中的天数不是一个精确的值。
datetime
没有
years
属性。它有一个
year
属性,因为它很简单,而且定义得很好,可以说一个特定的日期时间是在2009年。说一个特定的持续时间有多少年并不是那么简单;一年365天吗?366? 我们是否应该跟踪时间差开始和结束的时间来做出决定?即使在
f[“age_diff”]=f[“date2”]-f[“date1”]
的情况下,Pandas也没有足够的智能来计算这是多少年(浮点值)?还要注意的是,原因
时间差属性
没有这样的属性,是因为
pd.Timedelta
datetime.Timedelta
对象(第一个是第二个的子类)没有这样的属性。这确实是出于上述原因。