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