2017-07-21 28 views
1

Timedelta值我有大數據幀(DF),它看起來像:
聚集在Python的數據幀

 Acc_num date_diff 
0 29 0:04:43 
1 29 0:01:43 
2 29 2:22:45 
3 29 0:16:21 
4 29 0:58:20 
5 30 0:00:35 
6 34 7:15:26 
7 34 4:40:01 
8 34 0:56:02 
9 34 6:53:44 
10 34 1:36:58 
..... 
Acc_num     int64 
date_diff  timedelta64[ns] 
dtype: object 

我需要計算「date_diff」平均(以timedelta格式),每個賬號。
df.date_diff.mean()工作正常。但是,當我下一次嘗試:
df.groupby('Acc_num').date_diff.mean()它提出了一個例外:

"DataError: No numeric types to aggregate"

我也試過df.pivot_table()方法,但沒有任何acheive。

有人可以幫助我這個東西。先謝謝你!

回答

0

確實存在奇怪的限制。但是,一個簡單的解決辦法是:

df.groupby('Acc_num').date_diff.agg(lambda g:g.sum()/g.count()) 

編輯:
熊貓實際上將試圖如果傳遞numeric_only=False

df.groupby('Acc_num').date_diff.mean(numeric_only=False) 
聚集非數字列