容重匹配.py 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. import pandas as pd
  2. # 读取Excel文件
  3. df1 = pd.read_excel(r'D:\guozhong\19、定远县\19、定远县\定远县表层数据统计20241222.xlsx', converters={'原样品编号': str})
  4. df2 = pd.read_excel(r'D:\guozhong\19、定远县\19、定远县\定远县土壤容重.xlsx')
  5. print(df1)
  6. # 确保 '原样品编号' 列是字符串类型
  7. df1['原样品编号'] = df1['原样品编号'].astype(str)
  8. df2['样品编号'] = df2['样品编号'].astype(str)
  9. # 去除第一张表和第二张表中样品编号的后两位
  10. df1['Processed ID'] = df1['原样品编号'].str[:-2]
  11. df2['Processed ID'] = df2['样品编号'].str[:-2]
  12. print(df1)
  13. print(df2)
  14. # 创建一个空的DataFrame用于存储结果
  15. result_df = pd.DataFrame(columns=df2.columns)
  16. # 遍历处理后的第一张表的样品编号
  17. for id in df1['Processed ID']:
  18. # 在第二张表中查找匹配的样品编号
  19. matched_row = df2[df2['Processed ID'] == id]
  20. # 如果找到匹配项,则添加到结果DataFrame中;否则添加一个空值行
  21. if not matched_row.empty:
  22. result_df = pd.concat([result_df, matched_row], ignore_index=True)
  23. else:
  24. # ai
  25. empty_row = pd.Series([''] * len(df2.columns), index=df2.columns)
  26. result_df = pd.concat([result_df, empty_row.to_frame().T], ignore_index=True)
  27. result_df.to_excel('定远表层容重.xlsx', index=False)