我有一个pandas框架,其中有两个datetime 64 [ns]列(“d1”和“d2”)表示日期。我想创建第三个列,计算这两个日期之间的差值。我不能使用简单的days/365样式计算,所以我需要relativedelta。
在一行上使用relativedelta效果很好:
import dateutil.relativedelta as relativedelta
relativedelta.relativedelta(df["d1"][0],df["d2"][0])
> relativedelta(years=+1)
字符串
但它在列上失败了。所以我把它向量化了:
date_diffs=np.vectorize(relativedelta.relativedelta)
型
然后我试着
date_diffs(df["d1"],df["d2"])
型
但这将返回TypeError: relativedelta only diffs datetime/date
我该如何解决这个问题?或者我应该简单地使用apply
语句或for循环?
1条答案
按热度按时间jucafojl1#
使用列表理解:
字符串
如果使用
apply
,它应该更慢:型