【发布时间】:2021-07-10 07:20:37
【问题描述】:
我在 Pandas 中工作,试图减去两列日期以获得它们之间的时间长度(最好以月为单位,但任何更小的单位都可以)。我的原始数据框有超过 90,000 行,因此我正在使用大约 2,000 行的数据框的修剪版本。这是个坏消息,因为我在 SMALLER 数据帧上遇到了过大的问题(我认为???)。
这是我的数据头:
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
这是我得到的错误:
OverflowError:int64 加法中的溢出
data["birthDate"] = pd.to_datetime(data["birthDate"])
data["DatePurchased"] = pd.to_datetime(data["DatePurchased"])
data["Age"] = data["DatePurchased"] - data["birthDate"]
然后我尝试将.dt.date 添加到前两行,因为我在该站点的另一篇文章中看到了它,并盲目地希望它会起作用。它产生了这个错误
OverflowError: 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"]
这些错误是什么意思?我该如何解决这些问题,尤其是对于 90-10 万行的数据框?
【问题讨论】: