当使用Jupyter Notebook读入CSV文件时,有时会出现以下错误:UnicodeDecodeError: 'utf-8' codec can't decode byte 0x?? in position ??: invalid start byte。这是因为CSV文件的编码格式不是UTF-8。
为了解决这个问题,我们需要采取以下几个步骤:
步骤一:确定CSV文件的编码格式
在读取CSV文件之前,我们需要确定CSV文件的编码格式。可以用文本编辑器(比如记事本或者Sublime Text)打开CSV文件,并查看文件编码方式。在Sublime Text中,可以通过以下步骤查看文件编码方式:
- 打开CSV文件
- 点击菜单栏的View -> Show Encoding,在下拉菜单中选择“UTF-8”以外的编码方式(比如“GBK”或者“GB2312”),Sublime Text就会自动将文件内容以新的编码方式打开。
- 如果文件可以正常显示,那么新的编码方式就是文件的编码方式;反之,就需要再尝试其他编码方式。
步骤二:在读取CSV文件时指定编码格式
在Jupyter Notebook中,可以通过指定encoding参数的方式来读取指定编码方式的CSV文件。比如,在读取GB2312编码方式的CSV文件时,可以使用如下代码:
import pandas as pd
df = pd.read_csv('data.csv', encoding='gb2312')
其中,“data.csv”是CSV文件的文件名,encoding参数的值为“gb2312”。
示例一:读取以GB2312编码方式保存的CSV文件
假设我们有一个名为“data.csv”的CSV文件,它的编码方式为GB2312,文件内容如下:
姓名,年龄,性别
张三,18,男
李四,20,女
王五,22,男
为了读取该文件,可以使用如下代码:
import pandas as pd
df = pd.read_csv('data.csv', encoding='gb2312')
print(df)
输出结果为:
姓名 年龄 性别
0 张三 18 男
1 李四 20 女
2 王五 22 男
示例二:读取以Big5编码方式保存的CSV文件
假设我们有一个名为“data.csv”的CSV文件,它的编码方式为Big5,文件内容如下:
姓名,年齡,性別
張三,18,男
李四,20,女
王五,22,男
为了读取该文件,可以使用如下代码:
import pandas as pd
df = pd.read_csv('data.csv', encoding='big5')
print(df)
输出结果为:
姓名 年齡 性別
0 張三 18 男
1 李四 20 女
2 王五 22 男
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Jupyter Notebook读入csv文件时出错的解决方案 - Python技术站