2017-03-17 73 views
1

我知道這是一個古老的問題,我搜索了以前的所有帖子,但無法找到解決我的具體問題的答案。Python groupby datetime

我處理一個數據幀,看起來像這樣

Date Position Value 
2010-01-01 PEAK  600 
2010-01-01 BOTTOM 510 
2010-01-02 PEAK  620 
2010-01-02 BOTTOM 500 
... 
2015-03-02 PEAK  700 

不含NaN值或奇怪的字符。但是,原始數據不是的「日期」的格式,所以我到「日期」格式使用

df1 = df.sort('Date') 
df1['Date'] = pd.to_datetime(df1['Date']) 

轉換,但後我使用GROUPBY()命令

df1.groupby('Date') 

試圖組我的數據幀分組的「位置」欄,並進行運算「的價值,」之前,我不斷收到顯示

<pandas.core.groupby.DataFrameGroupBy object at 0x7f880d4f2160> 

但產生的任何錯誤消息。

我期待我的代碼將所有具有相同日期時間值的行條目組合在一起,但這並不是這樣。

如果有人能夠對此有所瞭解,我將不勝感激。

謝謝。

+0

請接受是否正確!我喜歡那個多汁的聲望 – Charlie

回答

2

這不是一個錯誤。 groupby返回一個groupby對象,然後你必須調用一個聚合函數。通常人們都會打電話給.mean(),還有其他人可能會讓其他人填滿你。

因爲我完全不知道你想要什麼,我會採取一種猜測我的例子

df1.groupby(['Date', 'Position']).mean() 

將輸出日期和位置分組數據框一個,與峯值和谷值的平均值爲所有PEAK和BOTTOM值分別爲該特定的一天。

哦,等待一個特定的日子只有峯值和谷值。請嘗試

df1[['Date', 'Value']].groupby('Date').mean() 

將當天的數值取平均值。

+0

是的,這個工程。非常感謝您的及時回覆。我需要更徹底地閱讀文檔。 –

+0

@ChrisT。任何時候! – Charlie