微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – groupby是否自动分组pandas中的所有非数字列?

我有一个下面的数据集示例(仅显示前几行,但有193行):

country,beer_servings,spirit_servings,wine_servings,total_litres_of_pure_alcohol,continent
Afghanistan,0,0,0,0.0,Asia
Albania,89,132,54,4.9,Europe
Algeria,25,0,14,0.7,Africa
Andorra,245,138,312,12.4,Europe
Angola,217,57,45,5.9,Africa
Antigua & Barbuda,102,128,45,4.9,north America
...

当我运行这个:drinks.groupby(‘continent’).head()

我找回了30行的数据帧.但在那30行中,我仍然有大陆的重复名称.例如,在下图中,您可以看到欧洲重复两次(在第1行和第3行):

enter image description here

当我按照大陆分组时,我无法理解为什么我仍然在同一个大陆上有两行?

在这种情况下,即使我从未在groupby函数中指定它,groupby操作也按国家分组?因为我在sql中知道你应该使用像max,min,sum等聚合函数.但是在这种情况下我不需要传入一个聚合函数,我得到上面的结果.

解决方法:

没有!

发生的事情是head是groupby对象上的一个方法,其行为与pd.DataFrame.head略有不同.

groupby version of head所做的是返回每个组的负责人.

因此,通过将1传递给head方法并看到它返回每个子集的第一行,我们可以更清楚地看到这一点

df.groupby('continent').head(1)

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐