我有一个有成千上万行和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