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

如何用Python Pandas读取无列名Excel的A列与B列并实现图片下载

解决无列名Excel的读取与图片下载问题

当Excel文件没有列名时,你需要告诉pandas不要把第一行当作列名,直接从第一行开始读取数据。你之前的错误是把index_col这个读取参数当成了行的索引键来用,完全搞错了用法。

正确处理步骤:

  1. 读取Excel时,给pd.read_excel加上header=None参数,这样pandas会用0、1、2...作为列索引,对应Excel的A、B、C列;
  2. 迭代时直接用row[0]取A列的url,row[1]取B列的name;
  3. 同时修正原代码里的缩进问题(原代码中requests.get和if语句缩进错误,会导致变量作用域问题)。

修正后的完整代码:

import requests
import pandas as pd

# 读取无列名的Excel,header=None表示第一行是数据而非列名
df = pd.read_excel(r'C:\Users\exdata1.xlsx', header=None)

# 迭代每一行数据
for index, row in df.iterrows():
    url = row[0]  # 0对应Excel的A列
    name = row[1]  # 1对应Excel的B列
    file_name = f"{name}.jpeg"
    
    # 发起请求下载图片
    r = requests.get(url)  
    if r.status_code == 200:
        with open(file_name, "wb") as f:
            f.write(r.content)
            print(f"已保存:{file_name}")

关键说明:

  • header=None是核心:没有这个参数的话,pandas会默认把Excel的第一行当成列名,导致你读取不到真正的数据;
  • 不要用row['index_col(0)']这种写法:index_col是read_excel的参数,用来指定哪一列作为行索引,不是获取列值的方式;
  • 原代码的缩进错误已修正:requests.get和if语句必须放在for循环内部,否则只会处理最后一行数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 06:15:32