昨天粘贴代码有误重新更正,梳理csv文件基本知识及python读取方法
#昨天粘贴代码出现错误,这里重新更正,欢迎大家批评指正。

做数据分析时,数据读取是十分重要的环节,数据读取可用多种方法存储到不同数据容器里,python中常见的数据容器有csv、excel、json和数据库,这里先梳理csv文件的基本知识,以及python中csv文件常见的两种方法。
一、数据存取之csv
(一)什么是csv
CSV是一种通用且相对简单的文件格式,它被用户广泛应用,也被商业广泛应用,还被科学广泛应用。其最广泛的应用是在程序之间转移表格数据,这些程序本身是在不兼容的格式上进行操作的,这些格式往往是私有的和/或无规范的格式。因为大量程序都支持某种CSV变体,至少是作为一种可选择的输入/输出格式。
一个用户或许要交换信息,信息是从一个以私有格式存储数据的数据库程序,传至一个数据格式全然不同的电子表格。极有可能的情形是,那个数据库程序能够将数据导出为“CSV”,随后被导出的CSV文件能够被电子表格程序导入。
“CSV”并非是一种格式单一且定义明确的格式(虽说RFC 4180有一个被普遍使用的定义),所以在实际应用中,术语“CSV”广泛指代具有以下特征的任何文件:
纯文本,使用某一种字符集,例如ASCII,或者Unicode,又或者EBCDIC,再或者GB2312;
2.由记录组成(典型的是每行一条记录);
每条记录会被分隔符分隔成字段,典型的分隔符有逗号、分号或制表符,有时分隔符还可以包括可选的空格,要正确解析csv文件,我们需要知道正在使用的分隔符;
4.每条记录都有同样的字段序列。
其结构通常是这样的:
第一列名称,第二列名称,第三列名称。
第一行数据1,第一行数据2,第一行数据3,
第二行数据1,第二行数据2,第二行数据3,
...
(二)读写csv文件的读写
Python中读写csv主要有两种:
1.使用python I/O写入和读取CSV文件
read 读取整个文件
readline 读取下一行
readlines会将整个文件读取到一个迭代器中,方便我们进行遍历,读取到一个list里以供使用 。
#读取csv
path = 'data/city.csv'
fl = open(path,'a')
A = fl.write()
fl.close()
#写入csv
以下是改写后的内容:A 等于一个列表,其中包含 'a,1,11',还包含 'b,2,22',也包含 'c,3,33' 。
path = 'data/city.csv'
fl = open(path,'a')
fl.write(A)
fl.close()
#使用with语句,后面可以不进行文件关闭操作
path = 'data/city.csv'
with open(path,'r') as fl:
i = fl.readlines()
print(i)
2.使用Pandas读取CSV文件
import pandas as pd
#读取csv
path = 'data/city.csv'
fl = pd.read_csv(path)
# 读取指定列索引字段的数据
将路径中的CSV文件读取,使用的列包括开盘价和收盘价 。
#写入csv
A = ['a,1,11','b,2,22',c,333']
fl = pd.DataFrame(A)
fl.to_csv(path)
#使用to_csv的时候, 我们可以给他传入几个参数:
将数据框fl保存为CSV文件,保存路径为path,保存时包含表头,不保存索引 。
注:to_csv这个方法中可以传递一些参数:
DataFrame.to_csv 方法,可用于将数据框保存为 CSV 文件。该方法有多个参数,path_or_buf 参数用于指定文件路径或缓冲区,默认为 None;sep 参数用于指定分隔符,默认为逗号;columns 参数用于指定要写入的列,默认为 None;header 参数用于指定是否写入列名,默认为 True;index 参数用于指定是否写入行索引,默认为 True;index_label 参数用于指定行索引的标签,默认为 None;mode 参数用于指定写入模式,默认为 'w';encoding 参数用于指定编码方式,默认为 None。
path_or_buf :文件保存的路径;
sep :默认是以 , 进行分割 , 也可以自己制定;
columns : 保存索引列和指定列;
index:是否写进行索引 0或者1;
header:可以是布尔值或者字符串列表,默认值为True,用于表示是否写进列索引值,其取值为0或者1;
缺失值保存为 Na,如果不写,默认为空,此时 na_rep = NaN:
float_format='%.2f' :保留两位小数。
往期推文:
如果觉得有用就点一下“在看”吧