理解Python中的groupby()

理解Python中的groupby(),python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我试图理解groupby()操作。仅仅了解grouby分组数据是不够的,因为这只是第一步,我们在这方面做了很多工作: df = pd.DataFrame({'Animal': ['Falcon', 'Falcon', 'Parrot', 'Parrot'], 'Max Speed': [380., 370., 24., 26.], 'Class': ['Prey', 'Prey', 'Not Prey', 'Not

我试图理解groupby()操作。仅仅了解grouby分组数据是不够的,因为这只是第一步,我们在这方面做了很多工作:

df = pd.DataFrame({'Animal': ['Falcon', 'Falcon', 'Parrot', 'Parrot'], 
                   'Max Speed': [380., 370., 24., 26.],  
                   'Class': ['Prey', 'Prey', 'Not Prey', 'Not Prey']}) 

In [7]: df                                                                                                                                                                                                   
Out[7]: 
   Animal  Max Speed     Class
0  Falcon      380.0      Prey
1  Falcon      370.0      Prey
2  Parrot       24.0  Not Prey
3  Parrot       26.0  Not Prey
我知道groupby()不会对原始数据集进行操作,而是对副本进行操作。我无法理解的是,执行此操作后,代码会是什么样子:

df.groupby('Class') 
我能从视觉上理解它吗?我可以理解原始数据帧,因为我可以看到它是一个表,因此可以想象操作将如何进行。那么,当我们执行上述grouoby()时会发生什么?它是否创建一个新系列或两个新列,其中一个是“Classs”,另一个是包含所有其他值的字符串

我试着查看Official docs user guide(),但这无助于理解grouby()在运行后的样子

我想你可以检查一下:

按对象分组

函数的作用是:返回一个groupby对象,但本质上描述了原始数据集的行是如何被分割的。GroupBy object groups变量是一个字典,其键是计算出的唯一组,相应的值是属于每个组的轴标签

如果您只运行df.groupby('column\u for_grouping'),您将得到一个类似于的Python对象。您可能想知道DataFrameGroupBy对象在内部的外观。因此,让我们通过遍历组,在DataFrameGroupBy对象中按大陆划分打印组


样本数据的预期输出是什么?你能创建吗?如果我在这里创建一个最小的例子,帖子会变大4倍,因为我必须从Kaggle复制它。我没有做伊托克的一个原因是,请花点时间阅读这篇文章,以及如何提供答案,并相应地修改你的问题。这些提示可能也很有用。我编辑了它,甚至让任何人都可以在解释器上执行代码。希望现在清楚了好的,答案已经编辑好了。@Arnuld使用
birds.groupby('Animal')['Class']
您的代码更可读、更清晰。它很好地表达了自己的意图。按动物分组,并将班级分组。容易的