![](/img/trans.png)
[英]Loop though pandas DataFrame columns, sort, and return the top N results
[英]Visualize columns by top n results on Grouped dataframe
我有以下 2 個數據框,第一個 dataframe df1
告訴第二個df2
每個月有多少條記錄。
(JFYI, df1
是從df2
本身計算出來的,並按月分組以保持計數)
mainid counts month
1 13 JAN
2 15 JAN
3 10 JAN
2 10 FEB
3 5 FEB
1 12 MAR
第二個df
mainid stamp A Value month
1 '2012-01-08 18:15:05' 'Value 01' JAN
1 '2012-03-08 19:15:05' 'Value 02' MAR
#... 25 (13+12 records for mainid 1 for JAN and MAR months of 2012)
2 '2012-01-08 18:15:05' 'Value 01' JAN
2 '2012-02-08 19:15:05' 'Value 04' FEB
#... 25 (15+10 records for mainid 2 for JAN and FEB months of 2012)
3 '2012-01-08 19:15:05' 'Value 06' JAN
3 '2012-02-08 12:15:05' 'Value 06' FEB
#... 15 (10+5 records for mainid 3 for JAN and FEB months of 2012)
現在,從df2
開始,我想在df1
中顯示前 3 個印章和前 3 個values
。 我可以這樣計算 top3 (但這對於每個mainid
都不可行)
top3_stamps = df[df['mainid' == 1]].sort_values(['month','stamp A']).head(3)
top3_values = df[df['mainid' == 1]].sort_values(['month', 'Value']).head(3)
我沒有得到,我怎樣才能找到每個mainid
的那些 top3 結果並將其與df1
結合起來
利用:
top3_stamps = df.sort_values('stamp A').groupby('mainid').head(3)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.