基于DataFrame行列值计算分设备分批次的故障率
计算各设备各批次的故障率
实现步骤
- 将
Result列转换为数值标记:Fail记为1,Pass记为0,便于统计失败实例数量 - 按
Device和Batch分组,分别统计每组的失败数量与总实例数 - 用失败数量除以总实例数得到故障率,可按需保留小数位或转换为百分比格式
代码示例
import pandas as pd # 构造示例数据 data = { 'Device': ['A', 'A', 'A', 'A', 'A', 'A', 'B', 'B'], 'Batch': [1, 1, 2, 2, 2, 2, 1, 1], 'Result': ['Fail', 'Pass', 'Fail', 'Fail', 'Pass', 'Fail', 'Pass', 'Pass'] } df = pd.DataFrame(data) # 标记是否为失败实例 df['is_fail'] = df['Result'].map({'Fail': 1, 'Pass': 0}) # 分组统计并计算故障率 failure_stats = df.groupby(['Device', 'Batch']).agg( 失败数量=('is_fail', 'sum'), 总实例数=('is_fail', 'count') ).reset_index() # 计算故障率(保留两位小数) failure_stats['故障率'] = (failure_stats['失败数量'] / failure_stats['总实例数']).round(2) # 可选:添加百分比格式列 failure_stats['故障率(百分比)'] = failure_stats['故障率'].apply(lambda x: f"{x*100}%") print(failure_stats)
输出结果
| Device | Batch | 失败数量 | 总实例数 | 故障率 | 故障率(百分比) |
|---|---|---|---|---|---|
| A | 1 | 1 | 2 | 0.5 | 50% |
| A | 2 | 3 | 4 | 0.75 | 75% |
| B | 1 | 0 | 2 | 0.0 | 0% |
内容的提问来源于stack exchange,提问作者Verbyyy
相关产品推荐
相关产品推荐

