2016-07-08 84 views
1

我試圖按一列/兩列進行分組,求和第四列的值並在第五列找到平均值。每個操作都要在單獨的輸出中寫入。感覺有點棘手,甚至開始。Dataframe上的多個操作

輸入:無頭,有超過10萬行

StartTime, EndTime,Day,SumCount,UniqueCount 
00:00:00,01:00:00,Mon,13534,594 
01:00:00,02:00:00,Mon,16674,626 
02:00:00,03:00:00,Mon,23736,671 
03:00:00,04:00:00,Mon,16977,671 
00:00:00,01:00:00,Tue,17262,747 
01:00:00,02:00:00,Tue,19072,777 
02:00:00,03:00:00,Tue,18275,785 
03:00:00,04:00:00,Tue,13589,757 
04:00:00,05:00:00,Tue,16053,735 
05:00:00,06:00:00,Tue,11440,636 

我試圖找到的是

  1. GROUPBY StartTime & EndTime找到SumCount之和爲UniqueCount中位數
  2. GROUPBY Day找到總和SumCount和中位數UniqueCount

我迷失瞭如何將兩種類型的groupby放在一個程序中並獲得兩個不同的輸出。

回答

1

嘗試:

df.groupby(['StartTime', 'EndTime']).agg({'SumCount': ['sum'], 
          'UniqueCount': {'median': lambda x: np.median(x).round(0)}}) 

enter image description here

或者:

df.groupby(['Day']).agg({'SumCount': ['sum'], 
         'UniqueCount': {'median': lambda x: np.median(x).round(0)}}) 

enter image description here

+0

謝謝!但是我的中位數不能浮動。我該如何取捨? –

+1

@SitzBlogz更新的文章 – piRSquared

+0

非常感謝。如果我收到任何錯誤將回寫。再次感謝 –