我有一个有趣的!我试图找到一个重复的问题,但没有成功......我的数据框由 2013-2016 年的所有美国和领土组成,具有多个属性。>>> df.head(2) state enrollees utilizing enrol_age65 util_age65 year1 Alabama 637247 635431 473376 474334 20132 Alaska 30486 28514 21721 20457 2013>>> df.tail(2) state enrollees utilizing enrol_age65 util_age65 year214 Puerto Rico 581861 579514 453181 450150 2016215 U.S. Territories 24329 16979 22608 15921 2016我想按年份和州分组,并显示每年的前 3 个州(按“登记者”或“使用”-无关紧要)。期望输出: enrollees utilizingyear state 2013 California 3933310 3823455 New York 3133980 3002948 Florida 2984799 2847574...2016 California 4516216 4365896 Florida 4186823 3984756 New York 4009829 3874682到目前为止,我已经尝试了以下方法:df.groupby(['year','state'])['enrollees','utilizing'].sum().head(3)这仅产生 GroupBy 对象中的前 3 行: enrollees utilizingyear state 2013 Alabama 637247 635431 Alaska 30486 28514 Arizona 707683 683273我也试过一个 lambda 函数:df.groupby(['year','state'])['enrollees','utilizing']\ .apply(lambda x: np.sum(x)).nlargest(3, 'enrollees')这产生了 GroupBy 对象中绝对最大的 3: enrollees utilizingyear state 2016 California 4516216 43658962015 California 4324304 41917042014 California 4133532 4011208我认为这可能与 GroupBy 对象的索引有关,但我不确定......任何指导将不胜感激!
添加回答
举报
0/150
提交
取消