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

将Excel中B29起的数据导出至新表/CSV时遇KeyError问题求助

问题分析与修复

错误原因

  1. 函数名拼写错误:pandas读取Excel的方法是pd.read_excel(全小写),你写成了pd.read_Excel,这会导致方法调用异常,不过你的报错是列找不到,大概率是输入时的笔误,但必须修正。
  2. header参数设置错误:你要从B29开始提取数据,截图里B29是表头行(对应"Time"和"A1"),pandas的header参数从0开始计数,所以B29对应的行索引是28,不是30。设置成30会把Excel第31行当作表头,自然找不到你要的列名。
  3. 列名匹配失效:header参数错误会导致读取后的DataFrame列名和预期不符,直接用['Time', 'A1']筛选就触发了KeyError。

修复后的代码

情况1:提取B29开始的所有数据(包含所有列)

import pandas as pd

# 读取Excel文件
spreadsheet_file = pd.ExcelFile('PlateReader1.xlsx')
# 获取唯一工作表名(因为你只有一个工作表)
sheet_name = spreadsheet_file.sheet_names[0]

# 读取B29及以后的数据:header=28对应Excel第29行作为表头,usecols指定从B列开始读取所有列
df = pd.read_excel(spreadsheet_file, sheet_name=sheet_name, header=28, usecols='B:ZZ')

# 保存为CSV文件
df.to_csv('extracted_data.csv', index=False)
# 或者保存为新Excel文件
df.to_excel('new_sheet.xlsx', index=False, sheet_name='Extracted')

情况2:仅提取'Time'和'A1'两列(对应截图里的B、C列)

import pandas as pd

spreadsheet_file = pd.ExcelFile('PlateReader1.xlsx')
sheet_name = spreadsheet_file.sheet_names[0]

# 指定读取B、C列,表头用Excel第29行(对应pandas索引28)
df = pd.read_excel(spreadsheet_file, sheet_name=sheet_name, header=28, usecols=['B', 'C'])

# 可选:验证列名是否正确
print(df.columns)
# 保存数据
df.to_csv('time_a1_data.csv', index=False)

额外提示

如果B29下方存在全空行,可添加df = df.dropna(how='all')去掉这些无效行;同时要确保脚本和Excel文件在同一目录,或者使用文件绝对路径。

内容的提问来源于stack exchange,提问作者Nikki N.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:30:50