应用一个函数来翻译熊猫数据框中的一列,条件是其他列
Posted
技术标签:
【中文标题】应用一个函数来翻译熊猫数据框中的一列,条件是其他列【英文标题】:Apply a function to translate a column in pandas dataframe with condition on other columns 【发布时间】:2015-11-29 06:15:49 【问题描述】:data 是一个 pandas 数据框,其中 language 和 config['TEXT FIELD'] 是列。我想将文本栏中的某些评论翻译成英文,我正在使用函数 dfApply
import goslate
def dfApply(row):
if row["langauge"] == 'en':
return row[config['TEXT FIELD']]
else:
return gs.translate(row[config['TEXT FIELD']], 'en')
gs = goslate.Goslate()
data['english_text'] = data.apply(dfApply, axis=1)
但编译器显示以下错误
KeyError: ('langauge', 'occurred at index 0')
【问题讨论】:
你在哪一行出错了? 我应用dfApply
函数的最后一行
language 是一列,表示文本使用的语言
为什么不直接将整列转换为英文,然后使用非英文行的掩码仅替换您需要的行?这比在每个步骤中使用 apply 条件要容易一些。
语言翻译 goslate 对大量数据点抛出超时错误
【参考方案1】:
这样的方法可能更简单。
not_en = data["language"] != "en"
trans = translate(data[config['row']], "en")
col = config['row']
data.loc[not_en, col] = trans[not_en]
【讨论】:
以上是关于应用一个函数来翻译熊猫数据框中的一列,条件是其他列的主要内容,如果未能解决你的问题,请参考以下文章