编辑:道歉我实际上错过了一组重要的数据。感谢那些已经帮助过的人。
我有一个缺少数据的数据集。我已经用0填充了缺失值。使用Python和Pandas我试图获得每个团队的指标,他们正在处理的应用程序的百分比是完整的。我的想法是在ColA上进行分组,然后对Col C进行计数,但是我无法弄清楚如何获得完整计数和总计数来进行计算。任何想法都非常感谢。
所以我想要一些看起来像这样的东西
Team A App1 High 0%
Team A App3 Med 100%
Team B App2 Med 0%
And so on.
我的df如下所示
+--------+-------+-------+----------+
| Col A | Col B | Col C | Col D |
+--------+-------+-------+----------+
| Team A | App1 | High | 0 |
| Team A | App1 | High | 0 |
| Team A | App3 | Med | Complete |
| Team B | App2 | Med | 0 |
| Team B | App2 | High | Complete |
| Team C | App1 | Low | Complete |
+--------+-------+-------+----------+
答案 0 :(得分:0)
df['count'] = df.groupby(['Col A', 'Col B', 'Col C'])['Col D'].transform(lambda x: (x==0).sum())
df['share'] = df.groupby(['Col A', 'Col B', 'Col C'])['Col D'].transform(lambda x: '{:.2f}%'.format((x==0).sum()/len(x)*100))
的产率:
Col A Col B Col C Col D count share
0 Team A App1 High 0 2 100.00%
1 Team A App1 High 0 2 100.00%
2 Team A App3 Med Complete 0 0.00%
3 Team B App2 Med 0 1 100.00%
4 Team B App2 High Complete 0 0.00%
5 Team C App1 Low Complete 0 0.00%
或只是:
df.groupby(['Col A', 'Col B', 'Col C'])['Col D'].apply(lambda x: '{:.2f}%'.format((x==0).sum()/len(x)*100))
Col A Col B Col C
Team A App1 High 100.00%
App3 Med 0.00%
Team B App2 High 0.00%
Med 100.00%
Team C App1 Low 0.00%