Pandas groupby - 当列是某个值时

Posted

技术标签:

【中文标题】Pandas groupby - 当列是某个值时【英文标题】:Pandas groupby - when column is a certain value 【发布时间】:2020-11-22 14:57:12 【问题描述】:

对于下表:

我想将 groupby 函数与“number_of_horses”一起使用,并在“winner”列中显示“TRUE”值的计数。

使用 Python-Pandas,我已经尝试过:

输入:

df.groupby('number_of_horses').winner.count()

输出:

上面的表格不是我们想要的输出。

想要的输出是:

请注意,“获胜者”列仅在值为 TRUE 时计算在内。

【问题讨论】:

【参考方案1】:

给你:

df[df.winner == True].groupby('number_of_horses').winner.count().reset_index()                                                                                                                                         

输出

   number_of_horses  winner
0                 2       2
1                 3       6

如果winner 列是字符串,则使用df.winner == "TRUE" 作为过滤条件

【讨论】:

以上是关于Pandas groupby - 当列是某个值时的主要内容,如果未能解决你的问题,请参考以下文章

Scala(Spark)-当列是列表时如何分组

PySpark:当列是列表时,将列添加到 DataFrame

当列是 JSON 数组而不是字符串时如何过滤 ANTD 表

当列是整数和小数的混合时,创建表时使用哪种数据类型?

当列是NTEXT时,SQL Server:IN('asd')不工作

Pandas groupby并将函数应用于数字列