我正在学习Pandas的“菜谱”第一章,bikes.csv例子。当我尝试将parse_dates更改为['Date'],dayfirst=True,并将index_col更改为日期,如下所示:(在菜谱第1章的第6行)
fixed_df = pd.read_csv('../data/bikes.csv', sep=';', encoding='latin1', parse_dates=['Date'], dayfirst=True, index_col='Date')
我得到了这个错误信息: ValueError: 'Date' 不在列表中。 在我写这篇文章之前,我尝试了以下解决方案:
第一种: utf-8 bom问题
据我所知,UTF-8中的BOM会引起一些问题,并导致此错误。此外,“日期”行在读取时被Pandas接受为一个元组?(如果我用错误的词写了这句话,非常抱歉,但这是我记得的,我不是Python专家)。我尝试使用以下建议进行编码转换: "utf-8-sig "编解码器提供了一个没有BOM的Unicode字符串:fp = open("file.txt")
s = fp.read()
u = s.decode("utf-8-sig")
即使我没有收到任何错误提示,但它仍然无法工作。
第二点:Vim是我尝试用来改变编码方式的工具。
iconv -f UTF-8 -t ISO-8859-1 infile.txt > outfile.txt
and this,
vim +"set nobomb | set fenc=utf8 | x" filename.txt
它们都不起作用。
第三步:我尝试使用vim打开文件时修改文件编码。
set fileencoding=utf-8-sig
(以及其他可能的编码,如ANSI、ASCII等)。
我遇到了这个错误:
E213: 无法转换(添加!以无需转换写入)
请帮助我,我错在哪里?非常感谢。
pd.read_csv('../data/bikes.csv', sep=';', encoding='utf-8-sig', parse_dates=['Date'], dayfirst=True, index_col='Date')
或pd.read_csv('../data/bikes.csv', sep=';', encoding='utf-16', parse_dates=['Date'], dayfirst=True, index_col='Date')
。 - MaxU - stand with Ukraine