pandas21读csv文件read_csv错误解决办法7种(详细 tcy)

pandas读csv文件错误解决办法   2018/12/24

以下方法汇总网上资料,有些方法是使用python2.x;建议你升级到python3.x,能够避免一些问题。

重点关注参数encoding,engine='python'

1.正确使用: 

1.1.文件名含路径中特殊符号:
pd.read_csv(r'd:\bujiao.csv')#前加r
os.getcwd() #获得当前的工作路径
pd.read_csv("bujiao.csv") #文件存在当前的工作路径的目录内

1.2.简体中文文件名:
pd.read_csv(r'd:\明细.csv',encoding='gb2312')#gbk,gb18030

1.3.繁体字文件名:
pd.read_csv(r'd:\河滘.csv',encoding='gbk') #gbk支持繁体中文

1.4.读取中文名文件或者在前面加u

pd.read_csv(u'河滘.csv')
data=pd.read_csv('F:\\数据源\\清单.csv',engine='python')
data=pd.read_csv(open('F:\\数据源\\清单.csv'))#python3.7

1.5.读取以0开头数据出现数据缺失
pd.read_csv(r".c:\\test.csv" ,, converters = {u'code':str})
# 不加converters 参数'000539'读出变成'539'
df = pd.read_excel(os.getcwd() + os.sep + 'stock.xlsx',converters = {u'code':str})

1.6.文件中含中文字符
# 查看本机器默认的encoding
sys.getdefaultencoding()#‘utf-8’;添加支持中文的编码
pd.read_csv('d:\\si\\a.csv',encoding='gb2312')

1.7.读取指定数据类型
# df数据a,b,c分别为str,float,float
df=pd.read_csv(output_file,encoding='gb2312',names=['a','b','c'],dtype={'b':np.folat64})  
2.python字符串前面加u,r,b的含义
u/U:表示unicode字符串
    # 适用任何字符串,对字符串进行unicode编码。
    # 中文一般添加, 否则一旦编码转换就会出现乱码。
r/R:非转义的原始字符串
    # 以r开头的字符,常用于正则表达式,对应着re模块。
    # python3.x默  

3.注意: 

1.读取日期注意把日期列宽度,不够的增加
2.python3支持中文文件名读写,所以可以python函数直接读写 

猜你喜欢

转载自blog.csdn.net/tcy23456/article/details/85228808