下面是一个数据集的示例(只显示前几行,但有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行中,continent
的名称仍然重复。例如,在下图中,您可以看到Europe
重复了两次(在第1行和第3行):
我不明白,当我最初按大陆分组时,为什么我仍然有两排相同的大陆?在
在本例中,groupby
操作是否也按country
分组,即使我从未在groupby
函数中指定过它?因为我知道在SQL中你应该使用一个聚合函数,比如max
,min
,sum
,等等,但是在这种情况下,我不需要传入聚合函数,我得到了上面的结果。在
drinks.groupby('continent').head([n=5])
返回每个组中的第一个n
行,然后按原始索引对它们重新排序。尝试调用drinks.groupby('continent').head(1)
,您将看到结果中只包括来自每个大陆的一个国家。在不!在
实际情况是
head
是groupby
对象上的一个方法,其行为与pd.DataFrame.head
稍有不同。在^{} version of ^{} 的作用是返回每个组的头。在
因此,我们可以通过将
1
传递给head
方法更清楚地看到这一点,并看到它返回每个子集的第一行相关问题 更多 >
编程相关推荐