如何使用循环批量合并多组Table与Table 2并生成对应新表?
批量循环合并Table 1.N与Table 2生成新表方案
核心思路
通过循环遍历所有Table 1.N表,逐个与Table 2按共享列A做关联合并,最后导出对应新表。以下以Python pandas库为例(处理大批量表格效率最优),给出两种常见场景的实现代码。
场景1:表格存储在Excel文件中(每个表对应一个sheet)
import pandas as pd # 1. 读取Table 2 table2 = pd.read_excel("你的表格文件路径.xlsx", sheet_name="Table 2") # 2. 循环处理100张Table 1.N for n in range(1, 101): # 读取当前Table 1.N sheet_name = f"Table 1.{n}" table1_n = pd.read_excel("你的表格文件路径.xlsx", sheet_name=sheet_name) # 3. 按列A合并表格(inner表示只保留两边都匹配的行,可换成left保留Table 1.N全部行) merged_table = pd.merge(table1_n, table2, on="A", how="inner") # 4. 保存合并后的表(两种方式可选) # 方式1:保存为独立Excel文件 merged_table.to_excel(f"合并结果_Table 1.{n}.xlsx", index=False) # 方式2:保存到同一Excel的不同sheet(需先创建空文件,后续追加) # with pd.ExcelWriter("所有合并结果汇总.xlsx", mode="a", engine="openpyxl") as writer: # merged_table.to_excel(writer, sheet_name=f"Table 1.{n}'", index=False)
场景2:表格已加载为DataFrame字典
如果已经通过其他方式将所有Table 1.N加载到字典(键为表名,值为DataFrame),可直接遍历字典处理:
import pandas as pd # 假设已加载好的Table 1.N字典 table1_dict = { "Table 1.1": pd.DataFrame({"A": [1,2,3], "B": ["a","b","c"]}), "Table 1.2": pd.DataFrame({"A": [4,5,6], "B": ["d","e","f"]}), # ... 此处省略其他98张表的DataFrame } # 读取或加载Table 2 table2 = pd.DataFrame({"A": [1,2,3,4,5,6,7,8,9], "C": ["x","y","Z","p","q","r","s","t","u"]}) # 循环合并并保存 for table_name, table1_n in table1_dict.items(): merged_table = pd.merge(table1_n, table2, on="A", how="inner") merged_table.to_excel(f"{table_name}'.xlsx", index=False)
关键注意事项
- 合并规则调整:
pd.merge的how参数可按需选择:inner:仅保留列A在两张表中都存在的行left:保留Table 1.N的所有行,Table 2无匹配则C列留空
- 数据类型统一:确保所有表的列A数据类型一致(比如都是整数或字符串),避免匹配失败,可通过
table1_n["A"] = table1_n["A"].astype(int)统一类型 - CSV文件适配:如果是CSV格式,将
read_excel替换为read_csv,to_excel替换为to_csv即可
内容的提问来源于stack exchange,提问作者catin
相关产品推荐
相关产品推荐

