Python实现Excel表格中译英时触发KeyError:'F9'问题求助
解决KeyError:'F9'的问题
问题根源
KeyError: 'F9' 说明你的DataFrame里不存在名为F9的列。你混淆了Excel的单元格标识(F9是第F列第9行)和pandas的列引用逻辑——pandas中df['列名']是按表头名称取整列,而非Excel的列号+行号组合。
修复步骤
先确认DataFrame的实际列名
在读取Excel后添加代码,查看当前数据的列名和内容预览:import pandas as pd df = pd.read_excel('TestBericht.xlsx') # 打印所有列名 print("列名列表:", df.columns.tolist()) # 打印前5行数据 print(df.head())运行后找到你需要翻译的目标列的真实名称(比如可能是中文表头如"客户",或者无表头时是数字索引0、1、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)
- 如果目标列有明确的表头名称(比如"客户名称"):
额外注意: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
相关产品推荐
相关产品推荐

