2013-12-09 74 views
0

因此,我嘗試獲取基於分組數據框顯示最新價格的df。下面是幫助解釋的9條記錄的df。如何通過特定列的最大分組值來過濾python數據框

  Country ISO Month Price 
0  Germany DE 201311 7.99  
1  Germany DE 201310 8.99 
2  Germany DE 201309 6.99 
3 United States US 201310 4.99 
4 United States US 201309 11.99 
5 United States US 201308 2.99 
7   France FR 201311 7.99 
8   France FR 201310 1.99 
9   France FR 201309 1.50 

我想DF返回,涉及到的最大月的價格。退回的以下觀點:

  Country ISO Month Price 
0  Germany DE 201311 7.99  
1 United States US 201310 4.99 
2   France FR 201311 7.99 

我試圖做一個GROUPBY用MAX(),可以通過執行以下

df.groupby(['Country','ISO'])['Month'].max().reset_index() 

返回的最大一個月,但上面的價格下降了的是涉及到那個月份,並且如果將「價格」包括在組中,顯然然後返回每個國家的所有3個值,因爲它們是不同的值。

對不起,我無法找到網絡上2小時後我正在尋找的答案。

回答

0

好,使用排序和第一次在GROUPBY似乎得到的結果,我需要

df.sort('Month', ascending=False).groupby(['Country','ISO'], as_index=False).first() 

將返回:。

  Country ISO Month Price 
0  Germany DE 201311 7.99  
1 United States US 201310 4.99 
2   France FR 201311 7.99 
0

數據存儲在mysql中嗎? 如果數據是在像[(0, 「毛..」, 「DE」,201311,7.99),(......]那麼你的目標可以通過這個代碼achived列表:

the_list.sort(key=lambda x:x[3], reverse=True)[:3] 

返回來自前三個最大的一個月的數據

+0

嗨Luyi,數據實際上是從excel文件導入的,所以是帶有標題的電子表格格式。數據實際上有更多的專欄和國家,甚至一週的字段。所以我需要它動態地返回每個組合的最大月份的每個組合的「價格」。因此對於美國來說,實際上是十月我需要返回,而其他的則是十一月。 – IcemanBerlin

+0

我有更多的MS訪問背景。在訪問過程中,我只需要在必填字段中對數據進行查詢,並選擇GroupBy和最大月份標準 – IcemanBerlin

相關問題