繁体   English   中英

使用熊猫获取每个唯一行项目的时差

[英]Getting time difference per unique row items using pandas

有人可以告诉我如何使用熊猫获取以下数据(df)中每个唯一行的时差:

Round   Order   Date
1   1   2011.02.04 00:20:21
1   2   2011.02.04 00:25:11
1   3   2011.02.04 00:35:10
1   4   2011.02.04 00:47:10
2   1   2011.02.04 00:21:21
2   2   2011.02.04 00:31:11
2   3   2011.02.04 00:41:10

由于第i列的顺序为“订单”,因此时差将是第4行中的日期值减去第1行中的日期值。因此,我想到达此表(time_df):

Round   TimeDiff
1   26.39
2   19.39

我会这样:

In [324]: df
Out[324]:
   Round  Order                Date
0      1      1 2011-02-04 00:20:21
1      1      2 2011-02-04 00:25:11
2      1      3 2011-02-04 00:35:10
3      1      4 2011-02-04 00:47:10
4      2      1 2011-02-04 00:21:21
5      2      2 2011-02-04 00:31:11
6      2      3 2011-02-04 00:41:10

In [325]: grp = df.groupby('Round')

In [327]: grp.Date.max()-grp.Date.min()
Out[327]:
Round
1   00:26:49
2   00:19:49
Name: Date, dtype: timedelta64[ns]

您可以将groupbyminmax区别使用:

df['Date'] = pd.to_datetime(df['Date'], format='%Y.%m.%d %H:%M:%S')   
print df
   Round  Order                Date
0      1      1 2011-02-04 00:20:21
1      1      2 2011-02-04 00:25:11
2      1      3 2011-02-04 00:35:10
3      1      4 2011-02-04 00:47:10
4      2      1 2011-02-04 00:21:21
5      2      2 2011-02-04 00:31:11
6      2      3 2011-02-04 00:41:10

print df.groupby('Round')['Date'].apply(lambda x: x.max() - x.min())
Round
1   00:26:49
2   00:19:49
Name: Date, dtype: timedelta64[ns]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM