看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
测试是软件开发过程中的关键环节,它通过系统性地验证和评估软件功能,确保产品质量和可靠性。测试不仅能够及早发现并修复缺陷,降低后期维护成本,还能提高开发效率,支持敏捷开发和持续集成。今天我们来看一个统计测试结果的 pandas 示例。
我们构造数据如下:
import pandas as pd
data = {
'Release': ['release_a', 'release_a', 'release_a',
'release_a', 'release_a', 'release_b',
'release_b', 'release_b', 'release_c',
'release_c', 'release_c'],
'Pass': [10, 5, 5, 20, 87, 2, 10, 64, 3, 104, 98],
'Fail': [20, 45, 23, 67, 11, 5, 45, 33, 15, 89, 87]
}
df = pd.DataFrame(data)
df
'''
Release Pass Fail
0 release_a 10 20
1 release_a 5 45
2 release_a 5 23
3 release_a 20 67
4 release_a 87 11
5 release_b 2 5
6 release_b 10 45
7 release_b 64 33
8 release_c 3 15
9 release_c 104 89
10 release_c 98 87
'''
需要按 Release 分组统计 Pass 和 Fail 有总数,格式如下:
'''
Release Summary
0 release_a [Pass: 127, Fail: 166]
1 release_b [Pass: 76, Fail: 83]
2 release_c [Pass: 205, Fail: 191]
'''
先按 Release 分组,再用 sum() 聚合求和,再将每行的数据转为字典,最后利用字典数据迭代,使用列表推导式得到最终结果。
根据思路,代码如下:
(
df.groupby('Release')
.sum()
.agg(lambda x: x.to_dict(), axis=1)
.map(lambda x: [f'{k}: {v}' for k, v in x.items()])
.reset_index(name='Summary')
)
'''
Release Summary
0 release_a [Pass: 127, Fail: 166]
1 release_b [Pass: 76, Fail: 83]
2 release_c [Pass: 205, Fail: 191]
'''
这样就完成了需求。
(完)
更新时间:2024-08-18 16:23:01 标签:pandas python 缺失值