我在Pandas公司工作,试图减去两列日期,得到它们之间的时间长度(最好以月为单位,但任何较小的单位都可以)。我的原始数据框有90000多行,因此我正在使用大约2000行的修剪版本的数据框。这是个坏消息,因为我在较小的数据框上遇到了过大的问题(我认为?)。
以下是我的数据标题:
Variety CropYear DatePurchased birthDate
0 AU Vic Secret™ 2014 2016-03-01 23:51:27.822 2016-03-01
1 AU Vic Secret™ 2014 2016-03-02 22:22:33.285 2016-03-01
2 AU Vic Secret™ 2014 2016-03-04 17:03:33.247 2016-03-01
3 AU Vic Secret™ 2014 2016-03-04 20:09:35.840 2016-03-01
4 AU Vic Secret™ 2014 2016-03-07 14:09:36.502 2016-03-01
这就是我得到的错误:
溢出错误:int64加法中溢出
data["birthDate"] = pd.to_datetime(data["birthDate"])
data["DatePurchased"] = pd.to_datetime(data["DatePurchased"])
data["Age"] = data["DatePurchased"] - data["birthDate"]
然后我试着补充 .dt.date
因为我在这个网站的另一篇文章中看到了这一点,并盲目地希望它能起作用。它产生了这个错误
溢出错误:python int太大,无法转换为c long
data["birthDate"] = pd.to_datetime(data["birthDate"]).dt.date
data["DatePurchased"] = pd.to_datetime(data["DatePurchased"]).dt.date
data["Age"] = data["DatePurchased"] - data["birthDate"]
这些错误意味着什么?如何解决这些问题,尤其是对于一个9-10万行的 Dataframe ?
1条答案
按热度按时间i86rm4rw1#
计算天数,而不是按当前方式减去2个datetime列后得到的较长格式“0天…”:
请注意年龄格式之间的差异: