Day14-读取文件
接着上一天的内容,我在学习的过程中发现,DF数据还可以利用几个Series数据组成,具体看一个例子:
两种形式,第一种是直接对Series创建DF对象,得出的结果。第二种是通过字典的形式创建DF对象,把Series的name映射到Series,简单来说,通过字典形式创建,可以看做将Series的name作为了列名,各个元素通过相同的index对应合并在一起。创建出来的DF有点类似一张excel的sheet,行是1,2,3,4....,列是A,B,C,D....。
读取csv文件
除了通过字典和Series的方式创建DF,还可以通过读取CSV文件的形式创建DF对象。
例如读取本地的一份NBA球员2013赛季的数据表,格式是CSV,通过read_csv 函数读取文件,返回DF数据给NBA_data,NBA_data就是DF数据类型,可以查看数据的列名,还可以显示数据的前五行数据。
大家可以留意到,读取数据的时候,我们没有指定索引号,所以系统自动添加了索引号,默认从0开始,我们可以在读取的时候加入参数,指定数据框的索引:
数据框的索引成了player,所以列名就没有了player字段。扩展一下学习,DF数据结果可以直接用列名选择数据,下面我们看一个例子:
选取数据集的时候都会带去索引号,所以如果设置球员名称为索引号,这样选取出来的信息就会更加清晰。更多关于read_csv函数的参数可以查看pandas官方文档。
读取xlsx文件
除了CSV文件,pandas还可以直接读取xlsx文件。加入参数sheet_name可以选择要读取的sheet。
如果要选择多个列的子集,需要以列表的形式传入数据框。下面我们来做一个小练习,巩固一下今天学习的内容,就是用pandas合并同一个文件夹内的所有csv文件(xlsx文件同理),并保存。现在我的D盘下有文件夹NBA,下有三个csv文件,nba_2013.csv、nba_2014.csv、nba_2015.csv。
简单说一下,这个合并的小程序主要用到了列表的迭代,pandas的CSV的读取方法,保存方法,还和数据框的合并函数,同理合并xlsx。留一个大家思考的问题,如果有多个xlsx文件,而且文件里面有多个sheet,那么要怎么合并?明天开始我给大家演示一下,这个我也是前不久自己学会,提示一下:要用到xlrd这个包去获取xlsx文件中的sheent个数。