我有一个df像:
df = pd.DataFrame({'Animal': ['Falcon', 'Falcon',
'Parrot', 'Parrot','Elephant','Elephant','Elephant'],
'Max Speed': [380, 370, 24, 26,5,7,3]})
我想按动物分组。
如果我在笔记本上写:
a = df.groupby(['Animal'])
display(a)
我得到:
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x7f945bdd7b80>
我以为会是这样:
我最终想做的是排序的df的数量动物外观(大象3,猎鹰2等)
4条答案
按热度按时间b1zrtrql1#
因为在groupby之后没有使用任何聚合函数-
a = df.分组(['动物'])显示(a)
校正- a = df.分组(['Animal']).计数()显示(a)
现在,使用count()函数或sort_values()或sum()等之后,您将获得groupby结果
nwwlzxa72#
您需要检查
DataFrame.groupby
:使用Map器或按一系列列对DataFrame进行分组。
因此,它不是用于按列删除重复值,而是用于聚合。
如果需要删除重复的值,请使用以下命令将其设置为空字符串:
如果需要分组:
3duebb1j3#
groupby对象需要一个操作,如max或min。这将导致两个结果:
1.一个规则的Pandas数据框
1.出现一次的分组关键字
显然,您希望保留两个Falcon条目,因此实际上并不希望执行groupby。如果您希望查看隐藏了重复动物值的条目,可以通过将Animal列设置为索引来实现。我这样说是因为您的输入数据框已经按照您希望的顺序显示了。
evrscar24#
使用
mask
:或作为索引: