python 如何在pandas中将索引设置为分组值?

lsmd5eda  于 11个月前  发布在  Python
关注(0)|答案(1)|浏览(122)

我已经尝试按照这里的例子,我认为应该工作.我想得到所有的数据分组'Continent',然后设置为我的索引.我已经尝试分组数据:

cont.head()
Country Continent   Population
0   China   Asia    1367.645161
1   United States   North America   317.615385
2   Japan   Asia    127.409396
3   United Kingdom  Europe  63.870968
4   Russian Federation  Europe  143.500000
cont = cont.groupby('Continent')
cont

但我一直得到这个结果,而不是实际的分组的嵌套。

<pandas.core.groupby.generic.DataFrameGroupBy object at 0x7f7ab3ae6ee0>

Edit我已经通过计算迭代了列,这是我的最终DataFrame,但是我希望每个大陆在索引中只列出一次

Country Population  sum size    mean    std
Continent                       
Asia    China   1367.645161 2898.666387 5   579.733277  679.097888
Asia    Japan   127.409396  2898.666387 5   579.733277  679.097888
Asia    India   1276.730769 2898.666387 5   579.733277  679.097888
Asia    South Korea 49.805430   2898.666387 5   579.733277  679.097888
Asia    Iran    77.075630   2898.666387 5   579.733277  679.097888
Australia   Australia   23.316017   23.316017   1   23.316017   NaN
Europe  United Kingdom  63.870968   457.929667  6   76.321611   34.647667
Europe  Russian Federation  143.500000  457.929667  6   76.321611   34.647667
Europe  Germany 80.369697   457.929667  6   76.321611   34.647667
Europe  France  63.837349   457.929667  6   76.321611   34.647667


我如何正确地编写代码来创建索引'Continent',并将其余数据按每个大洲分组?

nfg76nw0

nfg76nw01#

你要找的是set_index

cont = cont.set_index(['Continent', 'Country']).sort_index()

字符串
pandas使用排序的多个索引折叠索引显示。
groupby更适合聚合或循环操作,例如:

# looping
for continent, gdf in cont.groupby('continent'):
    do_something(gdf)
# aggregation
populations = cont.groupby('continent')['population'].sum()

相关问题