日期时间转换为年

时间:2020-01-13 10:39:13

标签: python pandas

这是我当前的代码

Point

但是我的结果是

Bound

如何将以上更改为年份?

1 个答案:

答案 0 :(得分:0)

我似乎无法将Timedelta的格式设置为年份-也就是说,您可以使用天的近似值-1年= 365.25天

df['Age'] = df['Age'].dt.days #turn timedelta into int number of days
df['Age'] = df['Age']/365.25

后记如果小数位数过多,可以使用Round。

这仅数天。如果您想提高精度,甚至可以在1年内使用31556952秒的秒数:

df['Seconds'] = df.Age.dt.days*24*3600+df.Age.dt.seconds #turn timedelta into int number of seconds
df['Years'] = df.Seconds/31556952

基本上,您的Timedelta以多种单位表示:天,小时,分钟,秒。您想将其转换为一个单位:浮点数年。一种方法是仅转换为可用单位之一,然后转换为年。因此:

x = pd.Timedelta('3706 days 10:37:40.303097')
x.seconds
>>38260
x.days*24*3600+x.seconds
>>320236660 #Number of seconds in the Timedelta
(x.days*24*3600+x.seconds)/31556952 #Divided by the number of seconds in a year
>>10.14789577903468