我有一個錯誤代碼、分子及其分母的數據框,以及每個可能的錯誤代碼及其總體錯誤類型的字典。我想按錯誤類型對數據幀中的錯誤代碼進行分組,對它們的分子求和,並保持分母列不變。我試過了
grouped = day1_xione.set_index('error_code').groupby(by=map_values,axis=1).sum().reset_index()
grouped
但它只保留錯誤代碼,而不是按類型對它們進行分組。這是數據樣本的樣子:
數據框:
錯誤代碼 | 分子 | 分母 |
---|---|---|
電源循環開啟 | 5 | 10 |
關機 | 1 | 10 |
恐慌 - 恐慌 -PANIC_1 | 5 | 10 |
TEMP_HIGH-TEMP | 0 | 10 |
未知-原因_未知 | 9 | 10 |
對於顯示的盡可能多的錯誤代碼,56 個錯誤。每個錯誤代碼都是一個字符串,直接匹配字典中的一個代碼。
字典:
map_values =
{'POWER CYCLE ON' : 'POWER RESET',
'POWER OFF': 'POWER RESET',
'PANIC - PANIC -PANIC_1': 'DEVICE PANIC',
'TEMP_HIGH-TEMP': 'OTHER',
'UNKNOWN-Reason_Unknown': 'OTHER'}
57 個代碼和 10 個類型。
期望輸出:
錯誤代碼 | 分子 | 分母 |
---|---|---|
電源復位 | 6 | 10 |
設備恐慌 | 5 | 10 |
其他 | 9 | 10 |
對於出現的所有錯誤代碼
您很接近,您需要groupby
使用map
和agg
用於具有不同功能(sum
和first
)的聚合的映射值
(df.groupby(df['error_code'].map(map_values))
.agg({'Numerator': 'sum', 'Denominator': 'first'})
.reset_index()
)
輸出:
error_code Numerator Denominator
0 DEVICE PANIC 5 10
1 OTHER 9 10
2 POWER RESET 6 10
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句