python - 计数后的 Pandas where 子句

标签 python pandas

我有一个名为 df 的 Pandas DataFrame:

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

假设在按 name 列分组后对 id 列进行count:

df.groupby('name')['id'].count()

这样我就可以得到每个 nameid 的不同计数。我明白了

name
n1    2
n2    3

然后我将如何根据计数(显然不是列)对我获得的这个帧进行排序?我想通过降序/升序对 if 进行排序,并且可能只检索满足特定 where 子句(比如那些 > 2)的计数。

最佳答案

返回的类型是一个 Series,您可以调用 sortsort_values (如果运行 0.17.0 或更高版本的 pandas)在此使用参数 ascending=True:

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

您可以通过传递 bool 条件来生成掩码来过滤系列:

In [52]:
counts[counts > 2]

Out[52]:
name
n2    3
Name: id, dtype: int64

面具看起来像这样:

In [53]:
counts > 2

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

关于python - 计数后的 Pandas where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35011442/

相关文章:

Python 无法保存名称前带斜杠的文件

python - 使用 pyparsing 来匹配字符串的特定结尾

python - Pandas 按多列的单一条件过滤数据帧

python - 如何对具有混合数据类型的 pandas 数据框中的浮点(十进制)值进行舍入?

python - 优于 LeetCode 的 'climbing stairs' pr*blem 的深度优先搜索解决方案

javascript - Django - 使用 javascript 显示结果(错误)

python - 按组删除 NaN 值

python - 标记数据时出错。 C 错误 : Expected n fields in line j, 通过忽略额外列看到 k 修复了吗?

python - python/scipy 中的牛顿法

python - 截断 Pandas 中的列宽