我有一个csv
文件,其中包含一些包含列名称的数据:
我遇到第三个 “IAS_lissé” 的问题,它被pd.read_csv()
方法误解,并返回为 。
那个角色是什么?
因为它在我的烧瓶应用程序中生成了一个错误,有没有办法以另一种方式读取该列而不修改文件?
In [1]: import pandas as pd
In [2]: pd.read_csv("Openhealth_S-Grippal.csv",delimiter=";").columns
Out[2]: Index([u'PERIODE', u'IAS_brut', u'IAS_liss�', u'Incidence_Sentinelles'], dtype='object')
答案 0 :(得分:4)
您可以更改read_csv的encoding
参数,请参阅pandas doc here。 python标准编码也是here。
我相信您的示例可以使用utf-8
编码(假设您的语言是法语)。
df = pd.read_csv("Openhealth_S-Grippal.csv", delimiter=";", encoding='utf-8')
这是一个显示一些示例输出的示例。我所做的只是使用问题字符制作一个包含一列的csv文件。
df = pd.read_csv('sample.csv', encoding='utf-8')
输出:
IAS_lissé
0 1
1 2
2 3
答案 1 :(得分:2)
我发现了西班牙语的相同问题,并使用“ latin1”编码解决了该问题:
import pandas as pd
pd.read_csv("Openhealth_S-Grippal.csv",delimiter=";", encoding='latin1')
希望有帮助!
答案 2 :(得分:1)
使用utf-8并不适合我。例如。这段代码:
bla = pd.DataFrame(data = [1, 2])
bla.to_csv('funkyNamé , things.csv')
blabla = pd.read_csv('funkyNamé , things.csv', delimiter=";", encoding='utf-8')
blabla
最终返回:OSError:从文件初始化失败
我知道你说你不想修改文件。如果您的意思是文件内容与文件名,我会将文件重命名为没有重音的内容,以新名称读取csv文件,然后将文件名重置为其原始名称。
originalfilepath = r'C:\Users\myself\\funkyNamé , things.csv'
originalfolder = r'C:\Users\myself'
os.rename(originalfilepath, originalFolder+"\\tempName.csv")
df = pd.read_csv(originalFolder+"\\tempName.csv", encoding='ISO-8859-1')
os.rename(originalFolder+"\\tempName.csv", originalfilepath)
如果你的意思是"没有修改文件名称,我很抱歉没有帮助你,我希望这有助于其他人。
答案 3 :(得分:1)
尝试使用:
import pandas as pd
df = pd.read_csv('file_name.csv', encoding='utf-8-sig')