无法在数据帧中正确解码重音

2024-05-16 09:15:58 发布

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

我正试图为Dataphile(我的YouTube频道)制作一个条形图比赛,比赛内容是“拥有最多奥运奖牌的柔道运动员”。 我的问题是:在我的数据集(csv)中,一些运动员的名字中有口音,我无法正确解码

例如,在第5行的my dataset中,ahtlete的名字是“Andreas TÃlzer”

这是我的密码:

years = [str(y) for y in range(1972,2020, 4)]
sex = ["mens", "womens"]
cat = ["extra-lightweight", "lightweight", "half-lightweight", "half-middleweight", "middleweight", "half-heavyweight", "heavyweight", "open-class"]

df_results = pd.DataFrame(columns=["Athlete"] + years)

all_df = {}

for s in sex: # gets all sexes
    for c in cat: #gets all weight categories
        for y in years: # gets all years with summer olympics
            try:
                all_df[y] = pd.read_csv(r"C:\Users\joris\Coding\judo_olympics\olympics_summer_" + y + "_JUD_" + s + "-" + c +"_final_standings.csv")
                df_med = all_df[y].head(4)[["Athlete"]]
                iter_years = iter(years)
                for w in years:
                    if int(w) >= int(y):
                        df_med.insert(len(df_med.columns), w, 1)
                    else:
                        df_med.insert(len(df_med.columns), w, 0)
                df_results = df_results.append(df_med)
            except FileNotFoundError:
                pass    
df_results = df_results.groupby("Athlete").sum()

df_results.index = df_results.index.str.normalize('NFKD').str.encode('ascii', errors='ignore').str.decode('utf-8') # got that from the internet

Here,我们可以看到输出中运动员的名字没有被正确解码

我想简单地将带重音的字母改为不带重音的同一个字母(例如:“é”将变成“e”)

在我的数据集中不应该有来自其他字母表的字母,只有恼人的口音

请让我知道,如果你有一个解决方案,或者如果你需要从我的代码更多的信息

谢谢


Tags: columnscsvindfformedall名字
1条回答
网友
1楼 · 发布于 2024-05-16 09:15:58

有一个python包Unidecode可用于此目的

pip install  user unidecode

然后,在Python中:

>>> from unidecode import unidecode
>>> print(unidecode('Ölfäßchen'))
'Olfasschen'

相关问题 更多 >