在CSV中的每个单元格上迭代语言检测代码,并在下一列中打印结果

2024-03-28 00:21:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个程序,当我的输入被硬编码时,它会在检测到后返回语言。 在遍历CSV单元格并在下一列中打印相应的语言之后,我希望得到相同的结果。你知道吗

我创建了一个代码,当输入被硬编码时检测语言。我现在有一个excel表格,上面有一些不同语言的ID和文本。 我想我的程序读取excel单元格的单元格和打印结果在相邻的列

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

Tags: 代码import程序语言id编码escode
1条回答
网友
1楼 · 发布于 2024-03-28 00:21:45

您没有显示希望如何读取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的Series.apply()方法来查找列lyric language中每个单元格的语言,并将结果分配给一个新列。你知道吗

相关问题 更多 >