2017-08-11 47 views
0

我想按照工作日的'time'列和'id'列進行分組。下面是我怎樣努力,它拋出一個錯誤:按工作日分組的時間和python中的id列

AttributeError: 'Int64Index' object has no attribute 'weekday'. 

下面的代碼:

grouped_weekday_id = df_sample.set_index('time', drop=False, inplace=False) 
grouped_weekday_id = grouped_weekday_id.groupby([df_sample.index.weekday, 'id']).mean().reset_index() 

和樣本數據如下:

time   id 64-digits  watts temp 
0 6/26/2017 0:25 1345 9.0072E+15 3.12 71.52 
1 6/26/2017 0:25 144 0    1.2  72.96 
... 
2 6/26/2017 0:25 1152  
3 6/26/2017 0:25 1157  
4 6/26/2017 0:25 617  
5 6/26/2017 0:25 1328  
6 6/26/2017 0:25 913 
7 6/26/2017 0:25 1717 

下面是數據類型df_sample數據幀。

time    datetime64[ns] 
id       int64 
64-digits     int64 
watts      float64 
temp      float64 
+0

你能否提供一些更多的行和列?我無法重現此錯誤。你確定你的數據是日期時間嗎? –

+0

@COLDSPEED我剛更新的數據集和原始數據集實際上是巨大的。 – ejshin1

+0

你有更多的專欄嗎?你是否將時間轉換爲日期? –

回答

0

據我所知,您將grouped_weekday_id分配給df_sample數據框,時間爲索引。

試試這個:

grouped_weekday_id = df_sample.set_index('time', drop=False, inplace=False) 
grouped_weekday_id = grouped_weekday_id.groupby(by=grouped_weekday_id.index.weekday).mean().reset_index() 

我改變代碼的第二行

+0

Thanks!我需要按兩列時間和ID分組。這是一個正確的方法嗎? 'grouped_weekday_id = grouped_weekday_id.groupby([grouped_weekday_id.index.weekday,'id'])。mean()。reset_index()' – ejshin1

+0

你可以嘗試描述上面的輸出和預期的輸出嗎? – Alex5207

+0

這是我的錯!沒問題。 – ejshin1