私は数千の行と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つの行のみが必要です。 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