2017-05-27 57 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 

東風給了我作爲3w]{

的首次和最後出現的差分輸出
UID DIFF 
0 3w]{ 166037 

而是當我想輸出是連續ID的差異。

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

我錯過了什麼?

回答

0

在UID列上,您正在彙總時間戳,然後獲取該uid的最小值和最大值,然後獲取差異。但爲了您的要求,請選擇兩列,然後對它們進行排名,並使用uid和rank = rank-1對其進行自我加入。或者您可以應用Rolling()熊貓方法。

+0

你能提供一個MWE嗎? – tandem

+0

提供MWE(我是新來的)? –

+0

最小工作示例。 – tandem