2017-05-27 5 views
0

私はcsvファイルを解析するスクリプトを作成しました。 csvファイルにはIDとタイムスタンプが含まれています。パンダを使用して類似の列を持つ行の違いを確認

df = pd.read_csv(dataset_path, names = ['ID','TSTAMP','DIFF'], delimiter=';') 
d = {'min':'TSTAMP-INIT','max':'TSTAMP-FIN'} 
df = df.groupby(['UID'])['TSTAMP'].agg([min, max]).reset_index().rename(columns=d) 
df['DIFF'] = (df['TSTAMP-FIN'] - df['TSTAMP-INIT']) 

CSVファイル(ドットがシリーズの他の要素を示す)

3w]{;1495714405280 
... 
    3w]{;1495714405340 
... 
    3w]{;1495714571213 
... 
    3w]{;1495714571317 
... 
    3w]{;1495714405280 
... 
    3w]{;1495714405340 
... 
    3w]{;1495714571213 
... 
    3w]{;1495714571317 

としてこれを考える場合DFは3w]{

の最初と最後の発生との間の差として私に出力を提供します
UID DIFF 
0 3w]{ 166037 

代わりに出力を連続IDの違いにしたい場合。

 UID DIFF 
0 3w]{ 60 
1 3w]{ 104 
... 

私は何が欠けていますか?

答えて

0

UID列では、タイムスタンプを集計してから、そのuidのminとmaxを取得し、その差を取っています。あなたの要件のために2つの列を選択し、それらをランク付けし、uidとrank = rank-1でそれを自己結合します。 Rolling()pandasメソッドを適用することもできます。

+0

MWEを提供できますか? – tandem

+0

のようにMWEを提供しています(私はSOの新しいです)? –

+0

最小の使用例。 – tandem

関連する問題