将计算列分组并添加到我的数据框中
问题描述:
我有一个看起来像这样的数据框我已将我的大洲制作为索引字段。我希望它表现出一点不同。我想获得的数据框只是有3个大洲,然后让所有的非洲大陆下属于国家,显示了作为计数将计算列分组并添加到我的数据框中
Continent Country
Oceania Australia 53 154.3 203.6 209.9
Europe Austria 28.2 49.3 59.7 59.9
Europe Belgium 33.2 70.3 83.4 82.8
Europe Denmark 18.6 26.0 38.9 36.1
Asia Japan 382.9 835.5 1028.1 1049.0
所以我的输出看起来像这样的:它会只显示该大陆下的国家数量。我也想它,当它结合到一切NUM_COUNTRIES,它给所有的平均值为国家,所以它的所有集于一身每个大洲
Continent num_Countries mean
Oceania 1 209.9
Europe 3 328.2
Asia 1 382.9
我试图创建这些列,但我可以得到创建新列,当我做他们作为南值和大洲时,我不能让groupby()函数以我想要的方式工作,因为它不会将所有国家卷入它所显示的大陆大洲和国家的完整列表。
答
您可以为此使用数据透视表。通过“大陆”(I标记的未标记的列1至4)
df.pivot_table(index="Continent", values=["Country", "1"],
aggfunc=('count', 'mean'))
答
以下组,并应用统计的国家数量和发现手段的平均值(我认为这是一个功能就是你,因为想要的东西每个大陆有多个国家的4列数字数据)。
def f(group):
return pd.DataFrame([{'num_Countries': group.Country.count(),
'mean': group.mean().mean()}])
grouped = df.groupby('Continent')
result = grouped.apply(f).reset_index(level=1, drop=True)
是的,这工作谢谢! – Cannon