2017-12-18 17 views
1

次のサンプルデータがあります。私はそれぞれの一意のIDの保持時間を計算したいと思います。これは、そのIDの2つのタイムスタンプの違いは何もありません。別の列に基づいて2つのスタンプの差を計算する

id2の場合は(20171116 03:46:17.467893 - 20171116 03:46:16.142514)、id2の場合は(20171116 03:46:17.212341 - 20171116 03:46:16.243121)などです。

    DATETIME INSTR MODE TYPE id 
0 20171116 03:46:16.142514 INSTR1 ORD New 1 
4 20171116 03:46:17.467893 INSTR1 ORD CXL 1 
1 20171116 03:46:16.243121 INSTR2 ORD New 2 
3 20171116 03:46:17.212341 INSTR2 ORD TRD 2 
2 20171116 03:46:16.758292 INSTR3 ORD New 3 
5 20171116 03:46:18.924825 INSTR3 ORD TRD 3 

誰かが私を助けることができますか?ありがとうございました。

答えて

1

まず最初と最後の減算値でカラムDATETIMEto_datetime、次いでgroupby変換:

df['DATETIME'] = pd.to_datetime(df['DATETIME']) 

df = df.groupby('id')['DATETIME'] 
     .apply(lambda x: x.iat[-1] - x.iat[0]).reset_index(name='timedelta') 

またはGroupBy.lastGroupBy.firstによって減算:

g = df.groupby('id')['DATETIME'] 
df = (g.last() - g.first()).reset_index(name='timedelta') 

print (df) 

    id  timedelta 
0 1 00:00:01.325379 
1 2 00:00:00.969220 
2 3 00:00:02.166533 
関連する問題