簡體   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