2016-01-08 102 views
2

這是我的DataFrame的演示示例。完整的DataFrame有多個附加變量,涵蓋6個月的數據。熊貓:按日期分組和其他變量的中位數

sentiment  date 
1    2015-05-26 18:58:44 
0.9   2015-05-26 19:57:31 
0.7   2015-05-26 18:58:24 
0.4   2015-05-27 19:17:34 
0.6   2015-05-27 18:46:12 
0.5   2015-05-27 13:32:24 
1    2015-05-28 19:27:31 
0.7   2015-05-28 18:58:44 
0.2   2015-05-28 19:47:34 

我想組數據幀由date列的只是一天,但sentiment列在同一時間聚集的中位數。

我用groupby試過的一切,dt訪問器和timegrouper都失敗了。

我想返回一個pandas DataFrame而不是GroupBy對象。

日期列M8[ns]

的情緒列float64

回答

6

幸運的是,您需要在您的問題中列出所需的工具。

In [61]: df.groupby(df.date.dt.date)[['sentiment']].median() 
Out[61]: 
      sentiment 
2015-05-26  0.9 
2015-05-27  0.5 
2015-05-28  0.7 
0

我這樣做:

df['date'] = df['date'].apply(lambda x : x.date()) 
df = df.groupby('date').agg({'sentiment':np.median}).reset_index() 

您先用最新更換datetime列。 然後你執行groupby + agg操作。