python - 在 Python 中使用 Excel 文件作为 pandas 数据框的映射
问题描述
我正在尝试使用错误代码的excel“主列表”以及它们所属的较大组,它们属于熊猫数据框中较大组的组错误。我不确定如何做到这一点。我之前尝试将错误代码添加到字典中,并使用组名作为键并按此分组,但它不会正确地对代码进行分组。我将在下面添加我的主列表和数据框的示例。
主列表:
代码 | 类型 1 | 类型 2 | 类型 3 | 类型4 |
---|---|---|---|---|
代码 A | X | |||
代码 B | X | |||
代码 C | X | |||
代码 D | X | |||
代码 E | X |
依此类推 10 列和 57 行
数据框:
代码 | 分子 | 分母 | 错误率 |
---|---|---|---|
代码 B | 6 | 10 | 0.6 |
代码 A | 4 | 10 | 0.4 |
代码 C | 9 | 10 | 0.9 |
代码 D | 0 | 10 | 0 |
对于出现的任何错误代码,依此类推
我希望输出为:
代码 | 分子 | 分母 | 错误率 |
---|---|---|---|
类型 1 | 15 | 10 | 1.5 |
类型 2 | 4 | 10 | 0.4 |
类型 4 | 0 | 10 | 0 |
等等以进行适当的分组。
我该怎么做呢?
我使用过字典,并且使用isin()
过类型列表无济于事。
这是我的示例文件的简化版本:
代码 | 电源周期 | 恐慌 | 温度 | 应用重启 |
---|---|---|---|---|
恐慌 | X | |||
电源复位-Power_Reset-硬电源 | X | |||
Power Reset-Hard_Power-硬电源 | X | |||
硬应用程序重启 | X | |||
代码原因温度 | X |
依此类推 10 列和 57 行
代码 | 分子 | 分母 | 错误率 |
---|---|---|---|
电源复位-Power_Reset-硬电源 | 6 | 10 | 0.6 |
恐慌 | 4 | 10 | 0.4 |
Power Reset-Hard_Power-硬电源 | 9 | 10 | 0.9 |
硬应用程序重启 | 0 | 10 | 0 |
依此类推,无论出现哪个错误代码,行数一样多
期望的输出:|代码|分子|分母|错误率| |----|---------|------------|----------| |电源循环| 15 | 10 | 1.5 | |恐慌| 4 | 10 | 0.4 | |应用重启 | 0 | 10 | 0 |
解决方案
说第一个数据帧 df1 第二个 df2
#convert Code to CODE in first dataframe with str.upper for standardization
df1.CODE = df1.CODE.str.upper()
#replace X with column names and remove nan values
df1["new"] = df1.filter(like="T").replace("X", pd.Series(df1.columns, df1.columns)).stack().to_numpy()
#replace CODE A,B,C,D,E with Type 1,2,3,4
df2["CODE"] = df2[["CODE"]].replace(df1[["CODE","new"]].set_index("CODE").to_dict()["new"],regex=True)
df2
CODE Numerator Denominator Error Rate
0 Type 1 6 10 0.6
1 Type 2 4 10 0.4
2 Type 1 9 10 0.9
3 Type 4 0 10 0.0
推荐阅读
- c# - 访问单例对象的多线程之间的线程同步
- javascript - 如何使用three.js将材质(.mtl)添加到对象(.obj)?
- python - 如何在 django 中通过请求和身份验证实现受保护的文件下载
- google-chrome - Lighthouse 返回错误:NO_FCP - 激活 CDN Railgun (IONOS) 后
- c - 我可以使用什么策略来 OCR Magic the Gathering 角落文本?
- r - 根据 R 中的可用性从动态列数的数据创建列
- arrays - 使用节点 js 将嵌套的 json 值推送到数组
- r - 用于连接到 Azure Devops 的 R 脚本,将来自 Azure Devops 的数据与其他资源拉取、转换和合并到 Power BI
- javascript - java 脚本:如何读取 html 文件并将其内容加载到 div
- serverless-framework - 无服务器打包问题