我有一個有成千上萬行和20列的DataFrame。日期是索引,並有許多相同的日期。例如DF:基於groupby過濾熊貓數據框(只有前3)
Stock Sales Data 1 Data 2
1/1/2012 Apple 120 0.996691907 0.376607328
1/1/2012 Apple 230 0.084699221 0.56433743
1/1/2012 Apple 340 0.141253424 0.319522467
1/1/2012 Berry 230 0.506264018 0.123657902
1/1/2012 Berry 340 0.646633737 0.635841995
1/1/2012 Cat 1250 0.204030887 0.928827628
1/1/2012 Cat 850 0.556935133 0.81033956
1/1/2012 Cat 650 0.771751177 0.988848472
1/1/2012 Cat 650 0.615222763 0.468555772
1/2/2012 Apple 1065 0.504410742 0.402553442
1/2/2012 Apple 200 0.752335341 0.487556857
1/2/2012 BlackBerry 1465 0.693017964 0.925737402
1/2/2012 BlackBerry 2000 0.262392424 0.076542936
1/2/2012 BlackBerry 1465 0.851841806 0.345077839
1/2/2012 BlackBerry 1465 0.70635569 0.718340524
1/2/2012 Tomato 700 0.911297224 0.155699549
1/2/2012 Tomato 235 0.118843588 0.662083069
1/2/2012 Carrot 500 0.07255267 0.585773563
我要過濾的數據,使得每個日期和每個股票我只顯示最多3行,我在此基礎上擁有最大的銷售的那些選擇這3個。
如果在每個日期和庫存中只有1或2個實例,那麼它自然會保留所有行。
如果日期和庫存組有3行或更多行,那麼我只需要3行用於3個最大銷售額。如果有一個聯合的第三個位置(具有相同的銷售數字),我仍然只想要該日期和股票的MAXIMUM 3行,所以通過隨機選擇或任何其他合適的方法,我仍然會爲該股票吐出3行特定日期。
示例輸出可能是這樣的:
Stock Sales Data 1 Data 2
1/1/2012 Apple 120 0.996691907 0.376607328
1/1/2012 Apple 230 0.084699221 0.56433743
1/1/2012 Apple 340 0.141253424 0.319522467
1/1/2012 Berry 230 0.506264018 0.123657902
1/1/2012 Berry 340 0.646633737 0.635841995
1/1/2012 Cat 1250 0.204030887 0.928827628
1/1/2012 Cat 850 0.556935133 0.81033956
1/1/2012 Cat 650 0.771751177 0.988848472
1/2/2012 Apple 1065 0.504410742 0.402553442
1/2/2012 Apple 200 0.752335341 0.487556857
1/2/2012 BlackBerry 2000 0.262392424 0.076542936
1/2/2012 BlackBerry 1465 0.851841806 0.345077839
1/2/2012 BlackBerry 1465 0.70635569 0.718340524
1/2/2012 Tomato 700 0.911297224 0.155699549
1/2/2012 Tomato 235 0.118843588 0.662083069
1/2/2012 Carrot 500 0.07255267 0.585773563
謝謝你的客氣話。 – piRSquared