【问题标题】:Importing Excel and Translation then Exporting Excel again导入 Excel 和翻译然后再次导出 Excel
【发布时间】:2021-01-11 07:05:45
【问题描述】:

我想使用来自excel 文件的goolge translator 进行翻译,然后再次导出到excel。 但是我遇到了一个错误:

AttributeError: 'str' object has no attribute 'to_excel'
import pandas as pd
from google_trans_new import google_translator

df = pd.read_excel("data.xlsx")
print(df)

translator = google_translator()
translate_text = translator.translate(df,lang_tgt='fr')
print(translate_text)

translate_text.to_excel('new_data.xlsx')

下面是打印结果

      Hi
0  Hello

salut  0 bonjour

data.xlsx是这样的

【问题讨论】:

  • 您是否打印了变量 translae_text 以查看它的格式?
  • 这告诉我它不再在数据框中,而是在字符串中。您必须将字符串转换回数据框
  • @goalie1998 我添加了打印结果。我会尝试根据您的建议将其转换为数据框。谢谢!

标签: python excel attributeerror google-translate


【解决方案1】:

你可以试试下面的代码:

import pandas as pd
from google_trans_new import google_translator

text = ','.join(pd.read_excel('demo.xlsx',header=None)[0].values)
translated_text = translator.translate(text,lang_tgt='fr')
pd.DataFrame(translated_text.split(',')).to_excel('new_data.xlsx',header=False,index=False)

上面的代码做了以下3个步骤:

  1. 从 excel 文件中读取值并使其成为带有逗号分隔符的字符串。
  2. 将该字符串传递给翻译器。
  3. 翻译后的文本再次以逗号分隔并转换为数据框以将其存储在 excel 文件中。

【讨论】:

  • 感谢您的帮助!我试过你的代码。它运作良好。但是当句子很长(例如谢谢)时,句子会分成不同的行。(第一行->谢谢,第二行->你)。你能把它们排成一排吗?
  • 在第一步和第三步中将分隔符更改为逗号,它将适用于所有长句。如果您还想要为逗号提供正确输出的输出,请使用句子中没有的任何特殊字符。
  • 真的很好用。这正是我想要的。我真的很感谢你的帮助!谢谢!!
  • 很抱歉,我还有 1 个问题。实际上我有 500 行要翻译,但是当我执行这段代码时,它说“警告只能检测到少于 5000 个字符”。您能就这个问题提出建议吗?
猜你喜欢
  • 1970-01-01
  • 2018-12-26
  • 1970-01-01
  • 1970-01-01
  • 2020-03-27
  • 2019-07-05
  • 2012-02-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多