在熊猫日期时间序列上使用Diff的难度

时间:2013-11-12 03:52:05

标签: python pandas

我在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

这显然不是原始数组中时间之间的差异。对我做错了什么的想法?

3 个答案:

答案 0 :(得分: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]

答案 1 :(得分:0)

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

diff_o_Series = timeSeries.diff()

你刚订购错了。

答案 2 :(得分:0)

如果你想找到整个DataFrame(不只是一个系列)的差异,你可以使用:

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

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

interval:1是默认值,但您可以指定要移位的时段

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