Python 在CSV中的每个单元格上迭代语言检测代码,并在下一列中打印结果
我写了一个程序,当我的输入被硬编码时,它会在检测后返回语言。 在遍历CSV单元格并在下一列中打印相应的语言后,我希望得到相同的结果 我创建了一个代码,在输入硬编码时检测语言。我现在有一张excel表格,上面有一些不同语言的ID和文本。 我想让我的程序逐单元格读取excel,并将结果打印到相邻的列中Python 在CSV中的每个单元格上迭代语言检测代码,并在下一列中打印结果,python,python-3.x,Python,Python 3.x,我写了一个程序,当我的输入被硬编码时,它会在检测后返回语言。 在遍历CSV单元格并在下一列中打印相应的语言后,我希望得到相同的结果 我创建了一个代码,在输入硬编码时检测语言。我现在有一张excel表格,上面有一些不同语言的ID和文本。 我想让我的程序逐单元格读取excel,并将结果打印到相邻的列中 from textblob import TextBlob import pycountry b = TextBlob("Si esta yayo si esta yayo alla voy ") i
from textblob import TextBlob
import pycountry
b = TextBlob("Si esta yayo si esta yayo alla voy ")
iso_code = b.detect_language()
# iso_code = "es"
language = pycountry.languages.get(alpha_2=iso_code)
print(language.name)
这是我希望程序迭代的Excel
id lyric language
1 Hello how are you
2 Wie geht es dir
3 cómo estás
4 நீங்கள் எப்படி இருக்கிறீர்கள்
5 Comment vas-tu
如何重新修改代码以获得预期结果
预期:
id lyric language Detected Language
1 Hello how are you English
2 Wie geht es dir German
3 cómo estás Spanish
4 நீங்கள் எப்படி இருக்கிறீர்கள் Tamil
5 Comment vas-tu French
您没有显示希望如何读取Excel。根据库的不同,您可能有不同的方式读取Excel。但假设你使用熊猫:
import pandas as pd
from textblob import TextBlob
import pycountry
def country(textstring):
b = TextBlob(textstring)
iso_code = b.detect_language()
language = pycountry.languages.get(alpha_2=iso_code)
return language.name
df = pd.read_excel("myexcel.xlsx")
df["Detected Language"] = df["lyric language"].apply(country)
print(df.to_string())
此方法使用pandas的
系列。apply()
方法查找列歌词语言中每个单元格的语言,并将结果分配给新列。谢谢!这太棒了。是否可以将新列和数据写入同一张excel工作表?同样,如果使用pandas,只需df.to_excel(“myexcel.xlsx”)
,但实际上它所做的是覆盖旧工作表。否则,您需要一种不同的方式来打开现有文件并手动操作,而不是覆盖。明白了!感谢您的帮助如果我对excel中的数千个单元格使用此脚本,它会给我一个错误:http\u error\u default raise HTTPError(req.full\u url,code,msg,hdrs,fp)urllib.error.HTTPError:http error 503:Service Unavailable除了textblb还有其他选择吗。。我读到谷歌为textblob提供的翻译服务不再免费。另外,由于我的IP现在被封锁了,我根本不能运行这个程序。有什么解决办法吗?我不熟悉。但看看这个答案是否有用: