Python pandas读取Excel文件
excelperfect
标签:Python与Excel,pandas
要使用Python处理数据,首先要将数据装载到Python,这里使用Python pandas来读取Excel文件。
pandas是Python编程语言中数据操作的事实标准。如果使用Python处理任何形式的数据,需要pandas。如果你没有安装pandas,可以在命令行中输入:
pip install pandas --upgrade
安装pandas。
如果安装出现异常,可以还需要先安装openpyxl:
pip install openpyxl
pandas库提供了几种便捷的方法来读取不同的数据源,包括Excel和CSV文件。这里我们将探讨两种方法:pd.read_excel()和pd.read_csv()。
pd.read_excel()方法及参数
read_excel()方法包含大约几十个参数,其中大多数是可选的。对于初学者,我们只介绍下面几个参数。
read_excel(io,sheet_name=0,header=0,names=None,usecols=None)
其中:
io通常是:表示文件路径的字符串或ExcelFile对象,后面会对此主题进行详细介绍。
Sheet_name可以是字符串或整数,代表想要pandas读取的工作表。
header通常是一个整数,用于告诉要将工作表的哪一行用作数据框架标题。
names通常是可以用作列标题的名称列表。
usecols可以是整数、字符串或列表,用于指示pandas仅从Excel文件中提取某些列。
这里是本文的示例工作簿(“用户.xlsx”),可以到pythoninoffice.com或者知识星球完美Excel社群下载。
按照惯例,“pd”是“pandas”的缩写,“df”是“dataframe”的缩写。
图1:读取Excel文件
io和sheet_name
pd.read_excel('D:\用户.xlsx')是最简单的形式,它(默认情况下)将为我们提供输入excel文件的第一个工作表表单,即“用户信息”工作表。
pf.read_excel('D:\用户.xlsx',sheet_name='购物清单')表示我们将得到第二个工作表,名为“购物清单”。
pf.read_excel('D:\用户.xlsx',sheet_name=[0,2])将返回excel文件的第一个和第三个工作表。返回的值是数据框架的字典。
header
如果由于某种原因,Excel工作表上的数据不是从第1行开始的,你可以使用header告诉Panda“嘿,此数据的标题在第X行”。示例Excel文件中的第四个工作表从第4行开始。在没有特别指示的情况下阅读该表,pandas会认为我们的数据没有列名。
图2:非标准列标题,数据不是从第1行开始
这并不好,数据框架需要一些清理。相反,我们可以通过指定header参数稍微修改代码。记住,Python使用基于0的索引,因此第4行的索引为3。
图3:指定列标题所在行
names
如果不喜欢源Excel文件中的标题名,可以使用names参数创建自己的标题名。
图4:自定义列标题名称
usecols
通过指定usecols,我们限制加载到Python中的Excel列,如果你有一个大型数据集,并且不需要所有列,就可以使用这个参数。下面的示例将只读取顾客姓名和购物名列到Python。
图5:指定我们想要的列
pd.read_csv()方法及参数
顾名思义,此方法读取csv文件。
CSV代表“逗号分隔值”,因此.CSV文件基本上是一个文本文件,其值由逗号分隔。这意味着还可以使用此方法将任何.txt文件读入Python。
read_csv()的参数类似于read_excel(),这里不再重复。然而,有一个参数值得说明:sep或delimiter。它用于告诉pandas使用什么分隔符来分隔数据。使用这里的示例文本文件(可在知识星球完美Excel社群中下载)可以看到基本上可以使用任何字符作为分隔符。
图6:使用问号(?)分隔文本
图7:可以使用“?”作为分隔符
注:本文学习整理自pythoninoffice.com。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。