转码.py 1.2 KB

123456789101112131415161718192021222324252627282930
  1. import pandas as pd
  2. # 读取两个表
  3. table1 = pd.read_excel(r"D:\guozhong\泾县数据集20241118\泾县转码表.xlsx") # 表1
  4. table2 = pd.read_excel(r"D:\guozhong\泾县数据集20241118\泾县水稳汇总20241110.xlsx") # 表2
  5. # 确保两表列数据类型一致,转换为字符串
  6. table1["转码后样品编号"] = table1["转码后样品编号"].astype(str)
  7. table1["样品编号"] = table1["样品编号"].astype(str)
  8. table2["样品编号"] = table2["样品编号"].astype(str)
  9. # 提取表2的样品编号列
  10. sample_ids_table2 = table2["样品编号"].tolist()
  11. # 创建一个列表,用于存储匹配结果
  12. matched_results = []
  13. # 遍历 table2 的样品编号,与 table1 的转码后样品编号匹配
  14. for sample_id in sample_ids_table2:
  15. matches = table1[table1["转码后样品编号"] == sample_id]
  16. for _, row in matches.iterrows():
  17. matched_results.append((sample_id, row["样品编号"]))
  18. # 将结果转为 DataFrame 并保存到 Excel 文件
  19. output_df = pd.DataFrame(matched_results, columns=["表2样品编号", "表1样品编号"])
  20. output_path = r"D:\guozhong\泾县剖面水稳转码.xlsx"
  21. output_df.to_excel(output_path, index=False)
  22. print(f"匹配完成!结果已保存到 {output_path}")