2016-05-19 8 views
1

を参照して生成されたタイムスタンプの列からTimedeltaIndexを生成します:どのように私は、タイムスタンプのリストを持って、それぞれはtimedeltaが前のタイムスタンプ

Timestamp 

2015-10-01 00:00:08          
2015-10-01 00:00:18          
2015-10-01 00:00:28          
2015-10-01 00:00:38          
2015-10-01 00:00:48          
2015-10-01 00:00:58          
2015-10-01 00:01:08          
2015-10-01 00:01:17 

と私はどこのタイムスタンプからTimeDeltasを生成したいです各はtimedelta値は、このような以前のタイムスタンプからの参照を取ります

Timestamp    TimeDelta 

2015-10-01 00:00:08  00:00:00.000       
2015-10-01 00:00:18  00:00:10.000      
2015-10-01 00:00:28  00:00:10.000      
2015-10-01 00:00:38  00:00:10.000      
2015-10-01 00:00:48  00:00:10.000      
2015-10-01 00:00:58  00:00:10.000      
2015-10-01 00:01:08  00:00:10.000      
2015-10-01 00:01:17  00:00:09.000 

しかし、その代わりに、私は、この取得しています:

Timestamp    TimeDelta 

2015-10-01 00:00:08  00:00:00.000       
2015-10-01 00:00:18  00:00:10.000      
2015-10-01 00:00:28  00:00:20.000      
2015-10-01 00:00:38  00:00:30.000      
2015-10-01 00:00:48  00:00:40.000      
2015-10-01 00:00:58  00:00:50.000      
2015-10-01 00:01:08  00:01:00.000      
2015-10-01 00:01:17  00:01:09.000 
を私は、次のコードを使用しています

df['TimeDelta'] = pd.TimedeltaIndex(df['Timestamp']) 

ありがとうございました!

答えて

1

は、隣接する行の差異を計算するためにdiffメソッドを使用します。

df['TimeDelta'] = df['Timestamp'].diff().fillna(0) 

import pandas as pd 

df = pd.DataFrame({'Timestamp': ['2015-10-01 00:00:08', '2015-10-01 00:00:18', 
    '2015-10-01 00:00:28', '2015-10-01 00:00:38', '2015-10-01 00:00:48', 
    '2015-10-01 00:00:58', '2015-10-01 00:01:08', '2015-10-01 00:01:17']}) 
df['Timestamp'] = pd.to_datetime(df['Timestamp']) 
df['TimeDelta'] = df['Timestamp'].diff().fillna(0) 
print(df) 

を感謝ねえ

  Timestamp TimeDelta 
0 2015-10-01 00:00:08 00:00:00 
1 2015-10-01 00:00:18 00:00:10 
2 2015-10-01 00:00:28 00:00:10 
3 2015-10-01 00:00:38 00:00:10 
4 2015-10-01 00:00:48 00:00:10 
5 2015-10-01 00:00:58 00:00:10 
6 2015-10-01 00:01:08 00:00:10 
7 2015-10-01 00:01:17 00:00:09 
+0

を生み出します!私はそれを試しましたが、残念ながら '.diff()'は非難され、[.difference](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DatetimeIndex代わりに.difference.html?highlight = difference)。私は 'df ['TimeDelta'] = pd.TimedeltaIndex(df ['date'] - df ['date']。shift(1))'とその作業を試みました! – cookiedookie

+0

'DatetimeIndex.diff'メソッドは非推奨です。しかし、 'Series.diff'メソッドはそうではありません。 'df ['Timestamp']'はdtype 'datetime64 [ns]'の系列なので、 'df ['Timestamp']。diff()'を使っても問題ありません。 – unutbu

+0

あなたはそうです!それは動作します!私は間違いを犯しました。私は以下の前の方を使っていました: 'df ['TimeDelta'] = pd.TimedeltaIndex(df ['Timestamp'])。difference()。fillna(0)'ありがとう! – cookiedookie

関連する問題