Pandas在count后面的where子句

2024-04-25 06:38:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为df的Pandas数据帧:

   col_A id name
0      4  1   n1
1     39  2   n1
2     49  3   n2
3      1  4   n2
4      0  5   n2

假设在按列名称分组后,对列id执行计数:

^{pr2}$

所以我得到了id每个name的不同计数。我明白了

name
n1    2
n2    3

然后,如何对由count(显然不是列)获得的帧进行排序?我希望通过降序/升序计数对if进行排序,并且可能只检索满足某个where子句的计数(比如那些>;2)。在


Tags: 数据name名称idpandasdf排序count
1条回答
网友
1楼 · 发布于 2024-04-25 06:38:23

返回的类型是Series,您可以使用参数sort或{a1}(如果运行的是0.17.0或更高版本的pandas),可以使用参数ascending=True对此调用sort或{a1}:

In [51]:
counts = df.groupby(['name'])['id'].count()
counts.sort_values(ascending=True)
counts

Out[51]:
name
n1    2
n2    3
Name: id, dtype: int64

可以通过传递布尔条件生成掩码来过滤序列:

^{pr2}$

面具是这样的:

In [53]:
counts > 2

Out[53]:
name
n1    False
n2     True
Name: id, dtype: bool

相关问题 更多 >