读取数据帧时如何转换特殊字符?
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çal
为 Fayç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 并重新运行上面的函数。
我有一个包含以下数据的 .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çal
为 Fayç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 并重新运行上面的函数。