相信很多人的日常工作中,数据源除了来自数据库以外,其次就是外部文件,因此掌握读取文件的技能是相当必要的。在这里特此整理读取外部文件的方法,希望能有助你们快速解决问题。当然本文对读者的假设是有一定的python基础知识。

此篇就以pandas模块【读取CSV 】 为例,我会贴上我的代码截图

【读取CSV 】

1.读取单个CSV文件

以下例子中,设置工作目录(这一步可用也可不用)只是为了方便,在批量读取文件的时候你更能体会它的好用;sep用来指定字符的分隔符号,常用的有空格 【''】,逗号【','】,【'\t'】

当然我最喜欢的是sep = None, 选择这个之后,python会自动检测分隔符号,当你读取文件报错时,不妨改为 sep = None 试试。另外还有一个常用参数是header,指定数据是否包含指标名称的,默认为0,表示第0行是header;如果设置header = None,则下图中的日期,来访人数,购买人数也会被认为是数据。更多read_csv的参数见:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

设置工作目录效果

不设置工作目录效果

2.批量读取csv文件

工作中可能会遇到一个文件夹有很多csv文件,或许里面还有很多excel文件,且命名还不太一样,如果手动输入文件名,会累摊且也不是我们数据分析的方法。

如下图2.1,我们先批量获取csv的文件名,然后再循环读取csv文件,相信细心的你已经发现指标名称乱码了,这时候我们就需要动用read_csv的encoding参数啦,使用方法见图2.2。

其中有2个函数,os.path.splitext是将文件名分隔开;如abc.csv则分为'abc' 和'.csv'2部分,他们的切片位置是[0,1]那os.path.splitext[1]就表示'.csv'。另外os.walk()要想了解更多更细,就需要你们自行百度模索,这里就不作细说了。

图2.1

图2.2

由于时间关系,这周先码这么多,下周再续