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

Python实现Excel表格中译英时触发KeyError:'F9'问题求助

解决KeyError:'F9'的问题

问题根源

KeyError: 'F9' 说明你的DataFrame里不存在名为F9的列。你混淆了Excel的单元格标识(F9是第F列第9行)和pandas的列引用逻辑——pandas中df['列名']是按表头名称取整列,而非Excel的列号+行号组合。

修复步骤

  1. 先确认DataFrame的实际列名
    在读取Excel后添加代码,查看当前数据的列名和内容预览:

    import pandas as pd
    df = pd.read_excel('TestBericht.xlsx')
    # 打印所有列名
    print("列名列表:", df.columns.tolist())
    # 打印前5行数据
    print(df.head())
    

    运行后找到你需要翻译的目标列的真实名称(比如可能是中文表头如"客户",或者无表头时是数字索引0、1、2...)。

  2. 修改列引用代码

    • 如果目标列有明确的表头名称(比如"客户名称"):
      df['transKunde'] = df['客户名称'].apply(translator.translate, src='zh-CN', dest='en').apply(lambda x: x.text)
      
    • 如果Excel没有表头(纯数据行),目标列是第F列(对应pandas的索引5,A列是0):
      # iloc[:,5]表示取第6列(索引从0开始)的所有行
      df['transKunde'] = df.iloc[:,5].apply(translator.translate, src='zh-CN', dest='en').apply(lambda x: x.text)
      
  3. 额外注意:googletrans的兼容性问题
    新版googletrans可能存在API访问失败的情况,若后续遇到翻译报错,可尝试指定国内服务地址:

    translator = Translator(service_urls=['translate.google.cn'])
    

完整示例代码

import pandas as pd
from googletrans import Translator 

# 读取Excel并确认列信息
df = pd.read_excel('TestBericht.xlsx')
print("列名列表:", df.columns.tolist())
print(df.head())

# 初始化翻译器(可选指定国内服务)
translator = Translator(service_urls=['translate.google.cn'])

# 替换成你实际的目标列名或索引
df['transKunde'] = df['你的目标列名'].apply(translator.translate, src='zh-CN', dest='en').apply(lambda x: x.text)

# 输出翻译后的文件(index=False避免生成额外索引列)
df.to_excel('translatedFile.xlsx', index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 02:35:21