2019-03-23

PYTHON

1 报错语句

df = pd.read_csv('C:/Users/DD/Desktop/ml_data/地质数据/eghole.csv')

2 报错内容

ParserError: Error tokenizing data. C error: Expected 1 fields in line 4, saw 2

3 原因分析

    读取文件报错,报错声明说是解析错误,那一般就是格式错误。我这里是直接把.xlsx的后缀改成了.csv,虽然在Excel中都可以正常显示,但是两者的格式是不一样的,所以pandas没有自动解决xlsx和csv之间格式差异也是很正常的。(但是pandas中的函数可以解决xlsxh和csv的转换问题)

4 解决方法

    在Excel中将.xlsx文件另存为.csv文件,就能解决格式错误。

5 扩展--xlsx和csv格式差异

    xlsx 的核心结构是 XML 类型的结构,采用的是基于 XML 的压缩方式,使其占用的空间更小。xlsx 中最后一个 x 的意义就在于此;而xls 的核心结构是复合文档类型的结构,是一个特有的二进制格式。

    csv是最通用的一种文本文件格式,它可以非常容易地被导入各种PC表格及数据库中。 此文件,一行即为数据表的一行。生成数据表字段用半角逗号隔开,每一行数据都以回车结束,是一种ASCII文件。

6 pandas中csv和xlsx格式的转换

6.1 csv转xlsx

csv = pd.read_csv('1.csv', index_col=0 ) #index_col解决的是防止出现序号列

csv.to_excel('1.xlsx') 

6.2 xlsx转csv

data_xls = pd.read_excel('1.xlsx',index_col=0 )

data_xls.to_csv('1.csv')

7 解码问题

    如果出现解码问题,采用设置encoding的方法进行尝试,一般中文可以采用GBK或者GB2312。

 后记:下次有时间再对encoding 和decoding进行学习,之前学的长时间没复习都忘了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容