Python - 使用重音字母

问题描述

我在 Python 中遇到重音字母的问题。它不能真正用非重音字母替换重音字母,因为在数据框中搜索它们时它不会识别这些单词。

下面的代码将新列添加到数据框“df_sb”,并将字符串(Section Début 或 Section da Tête)与另一列的内容组合在一起。

问题是,当我在主脚本文件中运行下面的块时,它会正确书写和显示带有重音字母的单词(Section DébutSection da Tête >)。但是,这需要通过调用函数在不同的文件中执行。当我调用函数并返回 df_sb 数据框(带有两列)时,由于某种原因,它弄乱了带重音的字母。我不明白为什么会这样。

第 1 块

from ipynb.fs.full.Untitled1 import *
df_sb = func_1()

第 2 块:

def func_1():
    import pandas as pd
    df_sb = ['One','Two','Three']
    df_sb = pd.DataFrame(df_sb)
    df_sb.columns = ['NAME']


    for i in range(0,len(df_sb['NAME']),1):
        df_sb['SECTION_DEBUT'] = "Section Début: " + df_sb.loc[:,'NAME'] + " "
        df_sb['SECTION_TETE'] = "Section da Tête: " + df_sb.loc[:,'NAME'] + " "
    return(df_sb)

-> 在同一个文件调用和运行函数时的输出

enter image description here

-> 在不同文件调用和运行函数时的输出

enter image description here

应该如何处理?

解决方法

这是一个源代码编码问题

当您获得正确的输出时,您的编辑器和运行代码的 Python 解释器都同意源编码,因此您可以正确表示非 ASCII 字符。

第二次运行时,解释器使用的编码与编辑器不同。从生成的特定 mojibake,看起来编辑器使用 UTF-8,而解释器使用 latin-1。唉,那是错误的选择!

幸运的是,有一种简单的方法可以告诉 Python 解释器您的文件的正确编码是什么。在文件的最顶部,在任何其他代码上方(但可以选择在“shebang”行下方,例如 #!/user/bin/python)放置如下内容:

# coding=utf-8

实际上,您可以编写各种各样的变体形式(其中一些可能被某些 IDE 或其他复杂的文本编辑器识别,以确保他们也使用指定的编码)。 PEP 263 中详细说明了这种编码声明的全部细节。