Python2对中文支持不好,在使用pandas读取含有中文的CSV文件时尤其需要注意,下面就记录一下我的使用经历。
我的CSV文件含有中文字段和中文数据,尤其是表头,全是中文,其中有一列叫做 “经度(度)”,我想使用pandas在代码里面直接用df["经度(度)"]来访问这一列数据,但是遇到了一些编码格式上的小问题,现将解决过程做以下记录。
1、首先,确定CSV文件的编码格式,以便在调用pandas.read_csv时指定编码参数,我的文件是gbk编码方式,因此通过以下代码来读取CSV文件。
df = pd.read_csv(csv_file, encoding="gbk")
2、在Python脚本的最前面添加以下代码,以指定该脚本处理数据时所使用的编码格式,需要注意的是一定要在最前面加这句话,否则可能会有问题。
# -*- coding: utf-8 -*-
3、如果使用的是PyCharm,还需要进行脚本文件的编码格式设置:
进入 File -> Settings,找到 Editor -> File encodings,将 Global Encoding 和 Project Encoding ,以及Default encoding for properties files 设置为utf-8。
4、在使用列名来访问DataFrame里面的数据时,对于中文列名,应该在列名前面加'u',表示后面跟的字符串以unicode格式存储,如下所示:
print(df[u"经度(度)"])