一个Excel单元格中内容为公司名称:
另外一个也有,现在想查找出相匹配的单元格,然后把这个表格中对应的内容复制到第一个表格中。
Chatgpt中输入提示词:
你是一个Python编程专家,要写一个Python脚本,具体任务如下:
读取excel文件"F:AI自媒体内容AI炒股境内深度合成服务算法备案清单20240914.xlsx"里面D列“主体名称”的全部内容,逐一和excel文件"F:AI自媒体内容AI炒股全部国内上市企业名单20240824(A股新三板港股美股).xlsx"中C列“公司名称”进行比对,如果两者一致,就把"F:AI自媒体内容AI炒股全部国内上市企业名单20240824(A股新三板港股美股).xlsx"中这个单元格所在行的内容都复制,然后追加到excel文件"F:AI自媒体内容AI炒股境内深度合成服务算法备案清单20240914.xlsx"中对应单元格所在行的后面
注意:每一步都要输出信息到屏幕上
生成代码如下:
import pandas as pd
# 文件路径
file_1 = r'F:AI自媒体内容AI炒股境内深度合成服务算法备案清单20240914.xlsx'
file_2 = r'F:AI自媒体内容AI炒股全部国内上市企业名单20240824(A股新三板港股美股).xlsx'
# 读取备案清单中的“主体名称” D列
print("读取文件: 境内深度合成服务算法备案清单...")
df_1 = pd.read_excel(file_1, sheet_name=0)
# 读取上市企业名单中的“公司名称” C列及其他列(A到J列)
print("读取文件: 全部国内上市企业名单...")
df_2 = pd.read_excel(file_2, sheet_name=0)
# 检查列名
print(f"备案清单列名: {df_1.columns}")
print(f"上市企业名单列名: {df_2.columns}")
# 假设D列是“主体名称”,C列是“公司名称”
df_1_names = df_1['主体名称'].tolist() # 从备案清单中读取主体名称
df_2_names = df_2['公司名称'].tolist() # 从上市企业名单中读取公司名称
# 初始化新的列,用于存储上市企业信息(从新列开始追加)
df_1 = df_1.reindex(columns=list(df_1.columns) list(df_2.columns)) # 添加file_2中的列
# 开始比对
print("开始公司名称比对...")
for idx_1, company_name_1 in enumerate(df_1_names):
match_found = False
for idx_2, company_name_2 in enumerate(df_2_names):
if company_name_1 == company_name_2:
match_found = True
print(f"匹配成功: {company_name_1},复制对应数据...")
# 复制file_2中匹配行的内容,追加到file_1的对应行后面
df_1.iloc[idx_1, -len(df_2.columns):] = df_2.iloc[idx_2, :].values
break
if not match_found:
print(f"未找到匹配: {company_name_1}")
# 保存结果
print("保存更新后的备案清单...")
df_1.to_excel(file_1, index=False)
print("任务完成!")
运行后结果: