【问题标题】:loop through words in a csv file and replace in python循环遍历 csv 文件中的单词并在 python 中替换
【发布时间】:2020-07-27 16:08:16
【问题描述】:

我有一个包含三列的 csv 文件,即 (cid,ccontent,value) 。我想遍历 ccontent 列中的每个单词并单独翻译这些单词。

我找到了用于翻译行的代码,但我想翻译每个单词而不是行。 How to write a function in Python that translates each row of a csv to another language?

from googletrans import Translator
import pandas as pd

headers = ['A','B','A_translation', 'B_translation']
data = pd.read_csv('./data.csv')
translator = Translator()
# Init empty dataframe with much rows as `data`
df = pd.DataFrame(index=range(0,len(data)), columns=headers)


def translate_row(row):
    ''' Translate elements A and B within `row`. '''
    a = translator.translate(row[0], dest='Fr')
    b = translator.translate(row[1], dest='Fr')
    return pd.Series([a.origin, b.origin, a.text, b.text], headers)


for i, row in enumerate(data.values):
    # Fill empty dataframe with given serie.
    df.loc[i] = translate_row(row)

print(df)

谢谢

【问题讨论】:

  • 你好暴躁,欢迎来到 SO!作为一般规则,您的问题越重复越好。即,如果您可以为您正在阅读的文件提供一个示例,那将使回答者更容易为您提供帮助。

标签: python pandas csv google-translate


【解决方案1】:

您可以尝试使用list comprehension

def translate_row(row):
    row0bywords = [translator.translate(eachword, dest='Fr') for eachword in row[0]]
    orw1bywords = [translator.translate(eachword, dest='Fr') for eachword in row[1]]
    return row0bywords, row1bywords

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-13
    • 1970-01-01
    • 1970-01-01
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 2020-06-25
    相关资源
    最近更新 更多