Python读写csv文件流程及异常解决
黑羽啊 人气:0逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列.
特点
- 读取出的数据一般为字符类型,如果是数字需要人为转换为数字
- 以行为单位读取数据
- 列之间以半角逗号或制表符为分隔,一般为半角逗号
- 一般为每行开头不空格,第一行是属性列,数据列之间以间隔符为间隔无空格,行之间无空行。
行之间无空行十分重要,如果有空行或者数据集中行末有空格,读取数据时一般会出错,引发[list index out of range]错误。PS:已经被这个错误坑过很多次!
使用python I/O写入和读取CSV文件
使用PythonI/O写入csv文件
常见错误list index out of range
其中我们重点需要讲的是 with open(birth_weight_file, "w", newline='') as f: 这个语句。表示写入csv文件,如果不加上参数 newline='' 表示以空格作为换行符,而是用 with open(birth_weight_file, "w") as f: 语句。则生成的表格中会出现空行。
不仅仅是用python I/O进行csv数据的读写时,利用其余方法读写csv数据,或者从网上下载好csv数据集后都需要查看其每行后有没有空格,或者有没有多余的空行。避免不必要的错误~影响数据分析时的判断。
使用PythonI/O读取csv文件
使用python I/O方法进行读取时即是新建一个List 列表然后按照先行后列的顺序(类似C语言中的二维数组)将数据存进空的List对象中,如果需要将其转化为numpy 数组也可以使用np.array(List name)进行对象之间的转化。
使用Pandas读取CSV文件
使用Tensorflow读取CSV文件
本人在平时一般都是使用Tensorflow处理各类数据,所以对于使用Tensorflow读取数据在此不过多的进行解释。
还有其他使用python读取文件的各种方法,这里介绍三种,不定期进行补充。
加载全部内容