gpt4 book ai didi

python - 日期时间:从自身中减去日期得到 3288 天

转载 作者:太空宇宙 更新时间:2023-11-04 05:52:57 25 4
gpt4 key购买 nike

我在 pandas 数据框中有一堆日期,大部分是在每年的 7 月观察到的,类型为 datetime64[ns]

In [126]:

e6.To.head()
Out[122]:
14 1991-07-01
15 1992-07-01
16 1993-07-01
17 1994-07-01
18 1995-07-01
Name: To, dtype: datetime64[ns]

我最终想使用 shift() 在一个单独的变量中存储从一行到下一行的滚动差异,但我发现减去日期会产生奇怪的结果。在这里,我从自身中减去一系列日期(转载前五个结果。其中一些如预期的那样为 0,但其他显然不是。

In [127]:

(e6.To-e6.To).head()
Out[127]:
1 0 days
1 -3288 days
1 3288 days
1 0 days
2 0 days
Name: To, dtype: timedelta64[ns]

如果我只取前五个观察值然后相减,我不会得到这个结果,而是按预期得到全 0:

In [128]:

e6.To.head()-e6.To.head()
Out[119]:
14 0 days
15 0 days
16 0 days
17 0 days
18 0 days
Name: To, dtype: timedelta64[ns]

如果我直接“输入”数据,我将无法重现它,如下所示:

In [128]:

test=pd.DataFrame(data=['1991-07-01','1992-07-01','1993-07-01','1994-07-01','1995-07-01','1996-07-01'],columns=['date'])
test['date']=test['date'].astype('datetime64')
test.date - test.date
Out[128]:
0 0 days
1 0 days
2 0 days
3 0 days
4 0 days
5 0 days
Name: date, dtype: timedelta64[ns]

知道我在这里做错了什么吗?

最佳答案

不是一个完整的答案,但我需要一些空间来展示一些东西。我的猜测是索引编制发生了一些奇怪的事情(虽然我不知道为什么)。请注意我上面关于索引的评论,还要注意@ASGM 关于差异非常接近 9 年的评论。

我正在使用您的代码来创建上面的示例数据,但是添加了几年并在重要的事件中坚持使用数据框的名称“e6”和变量的名称“To”(我真的很怀疑,但你知道……)

In [10]: e6
Out[10]:
To
0 1991-07-01
1 1992-07-01
2 1993-07-01
3 1994-07-01
4 1995-07-01
5 1996-07-01
6 1997-07-01
7 1998-07-01
8 1999-07-01
9 2000-07-01
10 2001-07-01
11 2002-07-01

In [11]: e6.To - e6.To[9]
Out[11]:
0 -3288 days
1 -2922 days
2 -2557 days
3 -2192 days
4 -1827 days
5 -1461 days
6 -1096 days
7 -731 days
8 -366 days
9 0 days
10 365 days
11 730 days
Name: To, dtype: timedelta64[ns]

关于python - 日期时间:从自身中减去日期得到 3288 天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29240897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com