目录
第6章 数据载入、存储及文件格式
输入和输出通常有以下几种类型:
· 读取文本文件及硬盘上其他更高效的格式文件;
·从数据库载入数据;
·与网络资源进行交互(比如Web API)。
6.1 文本格式数据的读写
将表格型数据读取为DataFrame对象是pandas的重要特性。如下是pandas的解析函数:
使用read_csv将一个csv文件读入一个DataFrame:
如果原csv文件以逗号分隔,那么也可以使用read_table,并指定分隔符:
pd.read_table('D:\AHUT-STU\instacart-market-basket-analysis\products.csv',sep=',')
对于不包含表头行的文件,可以允许pandas自动分配默认列名,也可以自动指定列名:
pd.read_csv('D:\AHUT-STU\instacart-market-basket-analysis\products.csv',names=[0,1,2,3,4,5])
想要某一列的值成为返回DataFrame的索引,你可以指定列的位置为索引,或将’列名’传给参数index_col:
names=[0,1,2,3,4,5]
pd.read_csv('products.csv',names=names,index_col='列名或者列所在位置比如位置4')
当想要从多个列中形成一个分层索引,需要传入一个包含列序号或列名的列表:
在某些情况下,一张表的分隔符并不是固定的,使用空白或其他方式来分隔字段。考虑如下文本文件:
当字段是以多种不同数量的空格分开时,可以手工处理,但在这些情况下也可以向read_table传入一个正则表达式作为分隔符。在本例中,正则表达式为\s+,因此可以得到:
可以使用skiprows来跳过第一行、第三行和第四行:
缺失值处理是文件解析过程中一个重要且常常微妙的部分。通常情况下,缺失值要么不显示(空字符串),要么用一些标识值。默认情况下,pandas使用一些常见的标识,例如NA和NULL:
na_values选项可以传入一个列表或一组字符串来处理缺失值:
在字典中,每列可以指定不同的缺失值标识:
pandas.read_csv和pandas.read_table中常用的选项如下:
6.1.1 分块读入文本文件
读取一小部分行(避免读取整个文件),可以指明nrows: