在我的dataframe中有两列被转换成了datetime,我试着减去这两个数字,然后找出它们之间的年份差,这是我使用的代码:
from dateutil.relativedelta import relativedelta
difference_in_years = relativedelta(x['start'], x['end']).year
但是,我收到以下错误消息:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
问题是什么?
4条答案
按热度按时间camsedfj1#
将属性
.years
与apply
和axis=1
一起用于按行处理:或者使用
list comprehension
:x一个一个一个一个x一个一个二个x
编辑:
zzzyeukh2#
可以按年单位划分
timedelta
系列,如有必要,还可以四舍五入:jchrr9hc3#
你可以通过
并且如果需要的话对结果进行舍入。
在Pandas
v0.23.4
和以后你可以做直接得到全年的差价。
更新:在panda
v0.25
和更高版本中,不支持pd.Timedelta(1, 'Y')
,因为年不是一致的度量单位(有时是365d,有时是366d)。如果365d近似值可以接受,您可以改为使用pd.Timedelta(1, 'Y')
:yshpjwxd4#
检查此答案calculate the difference between two datetime.date() dates in years and months