Python使用pandas读取excel或txt文件

在本文中,我们将介绍在Python中,使用pandas库来读取excel或者txt文件,以及在读取文件时的一些常用设置。在工作中我们经常会遇到需要从外部获取数据的情况,比如别人给我们传过来的excel,或者从系统上导出来的txt文件。在我们进行数据分析之前,我们都需要先将这些文件读取出来。pandas为我们提供了read_excel和read_cvs两个函数,分别用于读取excel和txt文件。

...

以上是一个例子Excel文件,它只有一个sheet页。我们可以使用read_excel函数读取文件内容。程序的源代码如下:

...

read_excel的参数就是Excel文件的完整路径名。文件如果读取成功,将返回一个DataFrame数据。这里大家要注意一下,如果文件名或路径是带有汉字的,那么一定要使用unicode存储字符串,就像上面的例子一样。df.head()函数将默认返回DataFrame的前5行数。通过这个函数我们可以很方便地看出来DataFrame读取的数据是否正确。这对于程序的调试非常方便。

在实际工作中,我们的很多Excel里会包含多个sheet,那么我们在调用read_excel时就需要指定sheet_name参数。下面我们假定要读取一个包含两个sheet的Excel文件,sheet的名字分别为"法人"和"个人"。

...

以下是程序的源代码:

...

程序的第8行和第11行,分别用两种形式,演示了指定sheet_name的方法。

pandas可以使用read_cvs函数读取txt文件中的内容。默认情况下,txt文件的文件格式应该是以逗号分隔开不同的字段。以下是我们用于演示的txt文件内容。

...

文件的第1行是标题,从第2行开始是文件内容,每个字段都是以逗号间隔开。读取文件的源代码如下:

...

read_cvs函数的参数是txt文件的完整路径。这里要特殊说明一下是,txt文件是UTF-8编码的,而我们的源代码也是UTF-8编码的。文件的编码对于解决乱码问题很重要。我们可以看到df.head()的结果是正确的。

...

但是有的时候,我们从不同的系统上下载到的txt数据文件,编码不一定都是UTF-8,那么我们在读取时就要指定encoding参数,以便正确的解析内容。大家如果想知道自己的txt文件是什么编码,可以使用UEStudio打开txt文件,在窗口的最下面可以看到编码。

...

我们可以看到这个txt文件是GBK编码的。那么我们在读取txt文件时应该指定encoding参数,源代码如下图所示。

...

通常科技部门为我们从后台导出的txt数据文件都是不带标题的,那么我们在使用pandas读取时,就需要指定header参数,否则pandas会将第1行默认为标题。我们先来看一下程序源代码。

...

txt文件的内容如下:

...

在使用read_cvs时,指定header=None,就可以不读取标题行,这时pandas将默认使用从0开始的数据作为标题名称。

...

在使用这样的文件之前,我们可以向科技部门要一份导出文件的表头,然后手工将表头添加进数据中。例如上面程序的第12行,就是我们为数据指定了一个表头,数据类型是列表(List),设置了表头标题之后,我们再使用df.head()看一下效果。

...

现在标题就都设置成功了,在pandas中,默认有一个索引列,就是在我们这个例子中,序号之前的这列。有的时候我们会使用这个索引列作为序号,但是由于它默认是从0开头,不太符合我们的阅读习惯,所以我们可以修改一下,使序号是从1开始。我们需要设置index属性,将其赋值为一个从1开始的列表类型(List)数据。例如上面程序的第16行,使用range函数构造一个列表类型数据,然后赋给index。处理后的txt文件内容如下。

...

以上就是关于在Python中,读取excel或者txt文件的一些常用操作。希望对大家的工作能有所帮助。

我使用的环境:Windows 7 + Python 2.7.17 + PyCharm Community Edition 2016.1.5

如果大家认为我的文章还可以,真心希望能帮我点一个"关注",粉丝的数量真的对我很重要,也算是对我努力结果的一个支持,谢谢大家了。