读取数据帧时如何转换特殊字符?

How to convert the special character when reading into a dataframe?

我有一个包含以下数据的 .csv 文件:

Publication,First Name,Last Name,Constituency,Caucus,Province,Date,Time,Page,Text
Hansard - 59,Fayçal,El-Khoury Pauzé,Laval-Les Îles,Lib.,QC,2022-04-27,14:23:08,,"Mr. Fayçal El-Khoury"

我希望能够正确读取具有特殊字符的单词,如 FayçalFayçal。 我试过了:

import pandas as pd 

file_name = "C:/Users/Admin/Downloads/Results.csv"
df =pd.read_csv(file_name, sep=',', encoding='utf-8', encoding_errors='ignore')
df

但不幸的是,仍然得到奇怪的字符。

尝试读取编码设置为 'latin_1'

的数据帧
df =pd.read_csv(file_name, sep=',', encoding='latin_1', encoding_errors='ignore')

更新:

否则,如果这不能解决问题,您可以尝试逐列应用编码。

试试这个函数应该可以解决问题

def encode_serie(serie):
    return serie.str.encode('latin_1', errors='ignore').str.decode('utf-8', errors='ignore')

df = df.astype(str)
df = df.apply(lambda x:encode_serie(x))

如果这也不起作用,请尝试 to_csv 并将编码设置为 'utf-8' 并尝试再次读取 csv 并重新运行上面的函数。