python - 如何按特定列分组,然后计算不是 NA 的多个列的数量并将它们添加到 Pandas Python 中?
问题描述
我想按 ID 进行分组,然后将 A 和 B 中的值的计数相加,其中不是 NA,然后将 A 和 B 的计数加在一起。除此之外,如果我只想计算 A 中的 y 值怎么办?
+----+---+---+
| ID | A | B |
+----+---+---+
| 1 | x | x |
| 1 | x | x |
| 1 | y | |
| 2 | y | x |
| 2 | y | |
| 2 | y | x |
| 2 | x | x |
| 3 | x | x |
| 3 | | x |
| 3 | y | x |
+----+---+---+
+----+--------+
| ID | Output |
+----+--------+
| 1 | 3 |
| 2 | 6 |
| 3 | 4 |
+----+--------+
解决方案
这是一种方法:
df = df.groupby('ID').agg(lambda x: sum(pd.notna(x))).sum(1).reset_index(name='Output')
print(df)
ID Output
0 1 5.0
1 2 7.0
2 3 5.0
推荐阅读
- python - 过去 2 周 EBS 卷的最大 IOPS
- java - 如何在 Java 中创建对象的多个实例
- c# - 读取 JSON 文件并使用字典中的值(如对象)生成字符串键
- python - DataFrame 无循环更新行的最快方法
- python - 找不到文件 - 突然停止工作
- android - android - 从 PointA 到 pointB 的翻译动画
- android-studio - 为什么第三个edittext在第二个edittext后面
- python - 如果数字太大,如何分解作为两个素数乘积的数字
- html5-video - 如何使用 Apache Royale 播放 mp4 视频?
- python - QHBarModelMapper 和 QAbstractItemModel 行编号