2016-01-22 54 views
0

的集合函數的值I創建的數據幀和分組,並且聚集的時間戳給我min和max值對每個分組 所得數據幀看起來像這樣 DF定義爲patient_id,時間戳 我分組的DF通過patient_id ,然後我想獲得的最小和最大時間戳各組 我做了這個如何訪問在Python

bypatient_date = pd.DataFrame(byencounter.agg({'timestamp' : [np.min,np.max]})).reset_index()) 

    patient_id timestamp    
       amin  amax 
0   19 3396-08-21 3396-08-25 
1   99 2723-09-27 2727-03-17 
2  3014 2580-12-02 2581-05-01 
3  24581 3399-07-19 3401-04-13 

我試圖找到每個patient_id的最小值和最大值之間的差異,但我有問題試圖訪問時間戳氨和時間戳記amax中的值有沒有辦法做到這一點沒有循環,但使用內置熊貓或numpy

+0

是那些真正的時間戳YYYY-MM-DD爲26日 - 34世紀的? – Parfait

+0

是的,他們離得太遠,無法保護數據 –

回答

2

簡單地刪除列索引的最高級別,如此SO post所示。然後aminamax是爲自己列訪問,你可以走差異化:

bypatient_date = pd.DataFrame(byencounter.groupby('patient_id').\ 
           agg({'timestamp' : [np.min, np.max]})).reset_index(drop=True) 

bypatient_date.columns = bypatient_date.columns.droplevel(0) 
bypatient_date['datediff'] = bypatient_date['amax'] - bypatient_date['amin']