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

如何在动态Excel文件中定位名为North的单元格并提取其下方所有数据

动态匹配Excel中North单元格并提取下方数据的实现方法

参考示意图

实现逻辑

无需提前知晓North的固定行列位置,匹配到目标单元格后直接提取对应范围的数据,完全适配每次打开的Excel结构不一致的使用场景。

完整代码实现

1. 导入依赖库

import pandas as pd

2. 读取Excel文件

# header=None 避免默认将第一行设为表头,遗漏匹配第一行的North
df = pd.read_excel("替换为你的Excel文件路径.xlsx", header=None)

3. 定位North单元格位置

遍历匹配(精准匹配)

match_pos = None
for row in range(df.shape[0]):
    for col in range(df.shape[1]):
        # 去除单元格前后空格避免匹配失败
        cell_val = str(df.iloc[row, col]).strip()
        if cell_val == "North":
            match_pos = (row, col)
            break
    if match_pos:
        break

str.contains模糊匹配(适配你之前的尝试方案)

效率比遍历更高,支持匹配包含North的所有单元格:

match_pos = None
mask = df.apply(lambda x: x.str.contains("North", na=False)).any(axis=1)
if mask.any():
    target_row = mask.idxmax()
    target_col = df.loc[target_row].apply(lambda x: "North" in str(x)).idxmax()
    match_pos = (target_row, target_col)

4. 提取目标单元格下方数据

if match_pos:
    target_row, target_col = match_pos
    # 提取同列下方所有数据,dropna()用于过滤空值,不需要可删除
    result = df.iloc[target_row+1:, target_col].dropna()
    # 如需输出为列表格式加.tolist(),如需整行数据把target_col换成英文冒号:
    print("提取结果:\n", result)
else:
    print("未找到内容包含North的单元格")

场景适配调整

  • 只需精准匹配完整值为North的单元格,用遍历匹配方案即可
  • 需匹配包含North的所有单元格,直接用str.contains模糊匹配方案
  • 需提取North下方整行的所有列数据,将提取代码中的target_col替换为:
  • 需保留空值数据,删除.dropna()方法即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:15:04