我的DataFrame看起来是这样的:
,Area,Item,Year,Unit,Value
524473,Ecuador,Sesame,2018,tonnes,16.0
524602,Ecuador,Sorghum,2018,tonnes,14988.0
524776,Ecuador,Soybeans,2018,tonnes,25504.0
524907,Ecuador,Spices nes,2018,tonnes,746.0
525021,Ecuador,Strawberries,2018,tonnes,1450.0
525195,Ecuador,Sugar beet,2018,tonnes,4636.0
525369,Ecuador,Sugar cane,2018,tonnes,7502251.0
...
1075710,Mexico,Tomatoes,2018,tonnes,4559375.0
1075865,Mexico,Triticale,2018,tonnes,25403.0
1076039,Mexico,Vanilla,2018,tonnes,495.0
1076213,Mexico,"Vegetables, fresh nes",2018,tonnes,901706.0
1076315,Mexico,"Vegetables, leguminous nes",2018,tonnes,75232.0
1076469,Mexico,Vetches,2018,tonnes,93966.0
1076643,Mexico,"Walnuts, with shell",2018,tonnes,159535.0
1076817,Mexico,Watermelons,2018,tonnes,1472459.0
1076991,Mexico,Wheat,2018,tonnes,2943445.0
1077134,Mexico,Yautia (cocoyam),2018,tonnes,38330.0
1077308,Mexico,Cereals (Rice Milled Eqv),2018,tonnes,35974485.0在DataFrame,世界各国和所有的农产品。这就是我想做的:
诸如此类的农作物。
法国的燕麦产量位居世界第一。
法国黄瓜产量居世界第二位。
法国黑麦产量居世界第二位。
法国排名..。在法国生产的每一种产品上都有类似的情况。
我一开始
df = df.loc[df.groupby('Item')['Value'].idxmax()]但我不仅需要第一名,还需要第二、第三、第四.请帮帮我。
我对熊猫很陌生。
发布于 2020-07-08 15:00:40
您可以指定一个级别列:
df['rank'] = df.groupby('Item')['Value'].rank(ascending=False)然后提取下列国家的信息:
df[df['Area']=='France']发布于 2020-07-08 14:58:34
与rank核对
s = df.groupby('Item')['Value'].rank(ascending = False)然后
d = { x : y for x , y in df.groupby(s)}
d[1] # output put rank onehttps://stackoverflow.com/questions/62797657
复制相似问题