pandas 数据导入
在pandas中数据导入有对应的模块;本节解决三个关键问题:
(1)路径斜线问题;
(2)中文路径问题;
(3)编码问题;
正常导入见下,若没问题则完事大吉,但往往没这么顺利。
import pandas as pd
file_path = 'D:/0Raw_data/ftm_p.csv'
data = pd.read_csv(file_path)
1、导入路径斜线问题
当错误类型如下,则一般是路径斜线问题。
ValueError: stat: embedded null character in path
在win中的直接复制的路径,斜线默认是“\”;但在python中路径一般首选是“/”;有3种合理解决方案:
file_path1 = 'D:/0Raw_data/ftm_p.csv'
file_path2 = 'D:\\0Raw_data\\ftm_p.csv'
file_path3 = r'D:\0Raw_data\ftm_p.csv'
2、中文路径问题
当错误类型如下,则一般是中文路径问题。
OSError: Initializing from file failed
不废话,解决方案就是先用open打开,而且一般用open先打开,能直接解决编码问题:
file_path = 'D:/0Raw_data/zhaoyang_charge_sta/京AW7531'
path = open(file_path)
data = pd.read_csv(path)
3、编码问题
当错误类型如下,则一般是编码问题。panda读取时会先检测第一个字符的编码类型,若不是'utf-8'则会报错。
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb9 in position 0: invalid start byte
还是不废话,直接解决方案:
解决方案1,用open,请注意报错问题,可以合理配置encoding,在中国一般就为'utf-8'或者'gbk'。
import pandas as pd
file_path = 'D:/0Raw_data/zhaoyang_charge_sta/京AW7531'
f = open(file_path,encoding='utf-8')
data = pd.read_csv(f)
f.close()
解决方案2,配置pandas的encoding;
import pandas as pd
file_path = 'D:/0Raw_data/zhaoyang_charge_sta/京AW7531'
data = pd.read_csv('D:/0Raw_data/ftm_p.csv',encoding='gbk')
4、总结
因为本人主要研究车辆网大数据分析,在不上spark的情况下,也不可能一个一个配置每个文件的编码问题,所以我一般用鲁棒性较好的解决方案如下,供参考。若能解决您的问题,请点个赞,欢迎交流。
import pandas as pd
file_path = 'D:/0Raw_data/zhaoyang_charge_sta/京AW7531'
f = open(file_path,encoding='utf-8')
data = pd.read_csv(f)
f.close()