python - 如何在忽略空值的列中获取每个组的计数
问题描述
我试图在忽略空值的列中获取每个组的计数。
数据集:
A B C
1 null 12
1 xx 13
1 yy 14
2 xx 15
2 yy 16
2 zz 12
3 xx 12
3 null 12
3 null 12
预期输出:
A B
1 2
2 3
3 1
使用的代码:df.groupby(['A'])["b"].apply(lambda x: x.notnull().count())
解决方案
pandas 库有一对内置函数,可以计算通过该.groupby()
方法创建的组中的项目数。不需要使用.apply()
您的代码所具有的方法或 lambda。
从熊猫导入数据框
data = [[1, None, 12],
[1, 'xx', 13],
[1, 'yy', 14],
[2, 'xx', 15],
[2, 'yy', 16],
[2, 'zz', 12],
[3, 'xx', 12],
[3, None, 12],
[3, None, 12]]
df = DataFrame(data, columns=['A', 'B', 'C'])
数数
Count 将对非空行进行计数。
In [11]: df.groupby(['A'])['B'].count()
Out[11]:
A
1 2
2 3
3 1
Name: B, dtype: int64
尺寸
另一方面,大小将计算组的所有元素,无论是否存在非空值。
In [12]: df.groupby(['A'])['B'].size()
Out[12]:
A
1 3
2 3
3 3
Name: B, dtype: int64
推荐阅读
- android - FCM 不会立即发送数据消息
- django - 检查用户是否有新的发行说明并通知他
- android - 无法读取未定义的属性“导航”-本机反应
- javascript - 当 div 有活动类时不要执行该函数
- javascript - antd table 在分页点击时向上滚动
- python - Adding Numpy ndarray into dataframe
- c# - 具有许多注释表的多对象
- swift - Swift MVVM - 使用协议处理 viewModel 事件
- python - 将“非正统”轴标签添加到 pyplot
- javascript - 如果没有执行我的条件。告诉我为什么?