You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Python循环匹配行实现多列合并:Excel风速数据整合求助

解决方案:匹配时间序列并合并风速值

针对你的需求,这里提供三种实用的实现方式,覆盖不同场景需求:

方案1:Excel内置函数快速匹配

适合Excel 365/2021及以上版本:用XLOOKUP

假设文件1的时间列在A列,文件2的时间列在A列、风速列在B列,在文件1的空白列(比如B2单元格)输入公式:

=XLOOKUP(A2, '[Excel文件2.xlsx]Sheet1'!$A:$A, '[Excel文件2.xlsx]Sheet1'!$B:$B, "无匹配")

下拉填充即可完成所有行的匹配,无对应记录时会显示“无匹配”,可自行修改提示文本。

兼容旧版Excel:用VLOOKUP+IFERROR

公式示例:

=IFERROR(VLOOKUP(A2, '[Excel文件2.xlsx]Sheet1'!$A:$B, 2, FALSE), "无匹配")
  • FALSE表示精确匹配时间序列
  • IFERROR用来替换无匹配时的#N/A错误提示

方案2:Power Query批量合并(大数据量首选)

  1. 打开文件1,点击「数据」选项卡 → 获取数据 → 从文件 → 从工作簿,导入文件2的数据
  2. 在Power Query编辑器中,选中两个表格的时间列,点击「合并查询」→ 选择「内部合并」(仅保留匹配行)或「左外部合并」(保留文件1所有行)
  3. 展开合并后的列,勾选“风速”列,最后点击「关闭并上载」,结果会自动导入新工作表

方案3:Python脚本自动化处理(适合重复执行或复杂场景)

先安装依赖库:

pip install pandas openpyxl

然后运行以下脚本:

import pandas as pd

# 读取两个Excel文件
df_standard = pd.read_excel("Excel文件1.xlsx")
df_wind = pd.read_excel("Excel文件2.xlsx")

# 按时间列合并,保留文件1所有行,匹配不到的风速显示NaN
merged_result = pd.merge(df_standard, df_wind[["时间", "风速"]], on="时间", how="left")

# 保存合并结果
merged_result.to_excel("合并后的时间序列.xlsx", index=False)

如果只需要保留两边都匹配的行,把how="left"改成how="inner"即可。

内容的提问来源于stack exchange,提问作者Kaiyuan Zheng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 05:26:01