如何使用Pandas实现型号批量解码及全流程数据管理?
Pandas实现型号解码并导出Excel完整方案
1. 读取Excel生成包含型号的DataFrame
直接用pandas的read_excel方法读取目标文件,按需提取包含型号的列:
import pandas as pd # 读取Excel文件,假设文件路径为"models.xlsx",型号列名为"型号" df = pd.read_excel("models.xlsx") # 查看前几行确认数据 print(df.head())
2. 管理型号含义规则(替代JSON的更优方案)
针对型号分段规则,推荐用嵌套字典存储映射关系,比JSON更直观易维护,适合批量型号匹配。假设型号为「品牌码-尺寸码-材质码」三段式结构,示例规则如下:
model_rules = { "品牌": { "AB": "甲品牌", "CD": "乙品牌", "EF": "丙品牌" }, "尺寸": { "100": "100mm", "120": "120mm", "150": "150mm" }, "材质": { "PL": "工程塑料", "ST": "304不锈钢", "AL": "铝合金" } }
如果型号是固定长度分段(比如前2位品牌、中间3位尺寸、最后2位材质),后续解码时可直接用字符串切片拆分,无需分隔符。
3. 编写型号解码函数
自定义函数实现单型号解码,兼容格式异常情况:
def decode_model(model_str, rules): result = {} try: # 按短横线拆分型号(固定长度则用切片:parts = [model_str[:2], model_str[2:5], model_str[5:]]) parts = model_str.split("-") # 按规则映射每个分段含义 for idx, (key, mapping) in enumerate(rules.items()): result[key] = mapping.get(parts[idx], "未知") except Exception: # 型号格式异常时标记为"格式错误" for key in rules.keys(): result[key] = "格式错误" return pd.Series(result)
4. 批量解码并合并为DataFrame
用apply批量处理型号列,将解码结果与原数据合并:
# 对型号列应用解码函数,生成解码后的字段 decoded_df = df["型号"].apply(lambda x: decode_model(x, model_rules)) # 合并原数据和解码结果 final_df = pd.concat([df, decoded_df], axis=1) # 查看最终数据 print(final_df.head())
5. 保存解码结果到Excel
用to_excel保存最终数据,关闭索引避免生成多余列:
# 保存到指定路径,比如"解码后型号数据.xlsx" final_df.to_excel("解码后型号数据.xlsx", index=False)
批量型号优化建议
如果型号数量极大(上万条),用矢量化操作替代apply提升效率:
# 矢量化拆分型号列 split_parts = df["型号"].str.split("-", expand=True) split_parts.columns = list(model_rules.keys()) # 批量映射每个分段的含义 for col, mapping in model_rules.items(): split_parts[col] = split_parts[col].map(mapping).fillna("未知") # 合并原数据 final_df = pd.concat([df, split_parts], axis=1)
内容的提问来源于stack exchange,提问作者citizen
相关产品推荐
相关产品推荐

