我在IPython中有一个查询,我根据MachineName,LocalIPAddress,SourceAddress和DateTime对数据框进行了分组,得到如下输出。
BMTSAFT04 10.3.0.186“”2016-04-13 03:42:29.865
BMTSAFT04 10.3.0.186“”2016-04-13 08:48:33.005
BMTSAFT04 10.3.0.186“”2016-04-13 10:16:28.612
BMTSAFT04 10.3.0.186“”2016-04-13 10:31:33.343
BMTSAFT04 10.3.0.186“”2016-04-13 13:43:00.173
BMTSAFT04 10.3.0.186“”2016-04-13 20:02:11.610
BMTSYSP05 10.1.9.25 10.3.4.81 2016-04-13 06:08:53.584
BMTSYSP05 10.1.9.25 10.3.4.81 2016-04-13 12:01:57.563
现在,对于每个组,我必须找到组中相应行的日期时间之间的差异。
例如,在第一组中,我必须显示“2016-04-13 03:42:29.865”和“2016-04-13 08:48:33.005”之间的区别,“2016-04-13之间的区别08:48:33.005“和”2016-04-13 10:16:28.612“,”2016-04-13 10:16:28.612“和”2016-04-13 10:31:33.343“等。必须对表中的所有组进行此操作。
我是python的新手,我正在弄清楚如何实现这一目标。
任何帮助都将不胜感激!!
答案 0 :(得分:0)
您可以使用pandas shift。
In [5]: df
Out[5]:
a b c d
0 1 2 3 4
1 4 5 6 7
2 2 4 6 8
3 3 2 1 4
4 0 1 2 4
In [6]: df['diff'] = df['d'] - df['d'].shift(-1)
In [7]: df
Out[7]:
a b c d diff
0 1 2 3 4 -3
1 4 5 6 7 -1
2 2 4 6 8 4
3 3 2 1 4 0
4 0 1 2 4 NaN