在 Pandas 中查找数据框中的前十名

20

我有一个包含大约800行数据的Dataframe(df),数据如下:


Name:Jason
Age: 45 Ticket:1

Name:Kim
Age: 30 Ticket:0

其中,1表示持有票,0表示没有持有票。

(抱歉,上面的格式可能不太好看。实际上,这个Dataframe有三列:Name,Age和Ticket)

我想使用Pandas找到拥有门票的年龄最大的前10位人员的语法是什么?

目前为止,我写了以下代码:

df.sort_values('Age',ascending=False,inplace=True)(data.Ticket==1)
(data.head(10))

我知道那不是正确的,但它展示了我正在寻找的参数。有什么想法吗?谢谢。

3个回答

28

如果你只想要老人们的名字,那么

df[df['Ticket'] == 1].sort_values('Age')['Names'].head(10)

谢谢你们两个。这两种解决方案都运行了,并且它们按年龄降序排序(这正是我想要的),但它们都没有将数据集限制为10行。嗯嗯。 - JD2775
抱歉bigbounty,由于某些原因它只让我给第一个点赞。 - JD2775
@JD2775,我刚刚为你的问题点了赞。你现在已经有15个声望值并可以进行点赞了。 - piRSquared
我也加一份。 - piRSquared
哈,谢谢大家。新手问题。所以,不知道为什么返回的列表没有停在10?(请参见我对答案的第一条回复) - JD2775
哦...尝试使用索引 df[:,:10] - bigbounty

26

其中一种常见的方法是使用 nlargest 方法:

df[df.Ticket == 1].nlargest(10, 'Age')['Names']

这样,您就不需要显式地进行排序。


5

掩码、排序、头部

df[df.Ticket == 1].sort_values('Age').head(10)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接