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

PySpark中用withColumn结合Google翻译批量处理DataFrame多列语言转换

批量翻译DataFrame列至英文

要批量处理DataFrame的列翻译,直接用pandas的apply或applymap方法,对列中每个元素调用翻译函数即可,以下是具体实现:

先修正你代码中的小问题:原代码里translate(NAME_ORIG))多了一个右括号,需删除。

单列翻译示例

假设你的DataFrame名为df,要翻译name列并生成新的英文列name_en:

import pandas as pd
from deep_translator import GoogleTranslator

# 示例DataFrame
df = pd.DataFrame({
    'name': ['ich suche den namen', 'Bonjour le monde', '你好,世界']
})

# 对name列批量翻译,生成新列
df['name_en'] = df['name'].apply(
    lambda x: GoogleTranslator(source='auto', target='en').translate(x) 
    if pd.notna(x) and x.strip() else x  # 处理空值或NaN
)

print(df)

运行后会得到包含翻译后内容的name_en列,工具会自动识别源语言并转为英文。

多列翻译示例

如果需要同时翻译多列(比如name和description),可以用applymap方法:

# 示例多列DataFrame
df = pd.DataFrame({
    'name': ['ich suche den namen', 'Bonjour le monde', '你好,世界'],
    'description': ['Ich bin ein Student', 'Je suis étudiant', '我是一名学生']
})

# 批量翻译指定列
translated_cols = df[['name', 'description']].applymap(
    lambda x: GoogleTranslator(source='auto', target='en').translate(x)
    if pd.notna(x) and x.strip() else x
)

# 将翻译后的列合并回原DataFrame
df = pd.concat([df, translated_cols.add_suffix('_en')], axis=1)

print(df)

这样就能一次性完成多列的批量翻译操作,同时处理空值避免报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 21:46:10