Pandas中的分组和列差计算

时间:2018-04-22 19:21:19

标签: python pandas datetime dataframe pandas-groupby

我想分析时间序列数据中的频率模式,但存在一些技术问题。在Pandas中有一个数据框:

Date                  Label
2017-03-22 15:16:45   20
2017-03-22 16:12:00   15
2017-03-22 22:10:23   20
2017-03-23 17:00:03   11
2017-03-24 10:11:13   20
2017-03-25 14:02:54   20

我想计算“日期”列中每个值之间的值之间的差异,这两个值按标签“20”分组。在我看来,它应该看起来像timedelta列的差异和标签列:

DateDiff              Label
0 days 06:53:38       20
1 days 12:00:50       20
1 days 03:51:41       20

如何使用pandas groupby选项?

1 个答案:

答案 0 :(得分:3)

让我们使用

df.assign(diff=df.groupby('Label')['Date'].diff()).dropna()

输出:

                 Date  Label            diff
2 2017-03-22 22:10:23     20 0 days 06:53:38
4 2017-03-24 10:11:13     20 1 days 12:00:50
5 2017-03-25 14:02:54     20 1 days 03:51:41