0

我在 Pandas 中有一个系列(dtype = datetime64),如下所示:

timeSeries
35064   2013-11-11 16:44:26
35065   2013-11-11 17:37:15
35066   2013-11-11 18:30:03
35067   2013-11-11 19:22:51
35068   2013-11-11 20:15:39

如果我再拿这个系列的差异:

diff_o_Series = diff(timeSeries)

我得到以下结果(dtype = timedelta64):

diff_o_Series 
35064        NaT
35065   00:00:00
35066   00:00:00
35067   00:00:00
35068        NaT

这显然不是原始数组中时间之间的增量差异。关于我做错了什么有什么想法吗?

4

3 回答 3

2

而不是diff(timeSeries),使用timeSeries.diff()

>> timeSeries
0   2013-11-11 16:44:26
1   2013-11-11 17:37:15
2   2013-11-11 18:30:03
3   2013-11-11 19:22:51
4   2013-11-11 20:15:39
dtype: datetime64[ns]

>> timeSeries.diff()
0        NaT
1   00:52:49
2   00:52:48
3   00:52:48
4   00:52:48
dtype: timedelta64[ns]
于 2013-11-12T03:56:38.580 回答
0

由于您使用pandas的是 ,因此您应该输入的是:

diff_o_Series = timeSeries.diff()

你只是订购错了。

于 2017-05-16T12:26:10.590 回答
0

如果要查找整个 DataFrame(不仅仅是一个系列)的差异,可以使用:

differenced_dataframe = yourDataframe.diff(axis = 0, interval = 1)

轴:您可以指定是否需要不同的行 (0) 或列 (1)

间隔:1 是默认值,但您可以指定要转换的周期

对于间隔 1,您的第一行将是 NaN,在执行任何进一步的分析/训练之前应将其删除。

于 2018-05-01T16:41:54.503 回答