对Python2.7 Pandas中的read_excel详解
在Python的pandas模块中,read_excel()函数可以用来读取Excel文件,尤其适用于对数据进行统计、分析等操作。本文将详细讲解read_excel()函数的用法和注意事项。
安装pandas
在使用read_excel()函数前,需要先安装pandas模块:
pip install pandas
使用read_excel()函数
read_excel()函数的语法如下:
pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None, squeeze=False, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skiprows=None, nrows=None, na_values=None, keep_default_na=True, verbose=False, parse_dates=False, date_parser=None, thousands=None, comment=None, skipfooter=0, skipfooter_space=False, skip_blank_lines=True, parse_cols=None, parse_dates_at=None, encoding=None, **kwds)
参数说明:
io
:要读取的Excel文件路径。sheet_name
:要读取的工作表,可以是工作表名称或工作表索引号。header
:指定标题行的行号。行号从0开始。names
:设置一个数组,用于指定自定义标题。index_col
:设置一个列索引,作为DataFrame的行索引。usecols
:设置只读取特定的列。squeeze
:如果数据中只有一列,返回一个Series对象。dtype
:设置读取数据的数据类型。engine
:使用哪个解析器解析Excel文件。可以是”xlrd”,”openpyxl”或其他可用的解析器。converters
:用于将指定列的数据类型转换为Python对象的字典映射。true_values
:指定Excel中被认为是True的字符串列表。false_values
:指定Excel中被认为是False的字符串列表。skiprows
:设置要跳过的行号。nrows
:读取的行数。na_values
:指定Excel中被认为是缺失值的字符串列表。keep_default_na
:是否保留pandas的默认的空值列表。verbose
:如果为True,则显示文件解析过程中的输出信息。parse_dates
:将指定列转换为日期时间格式。date_parser
:将日期字符串转换为日期时间格式的函数。thousands
:数值变量中的千分位分隔符。comment
:Excel文件中的注释行。skipfooter
:要跳过的尾部行数。skipfooter_space
:是否跳过空行。skip_blank_lines
:是否跳过空行。parse_cols
:设置要解析的列。parse_dates_at
:设置要将哪些列解析为日期。encoding
:文件编码。
以下是一个示例。
示例1
首先,我们可以创建一个Excel文件来进行读取操作,该文件的内容如下:
Name | Age | Gender |
---|---|---|
Amy | 20 | Female |
Bob | 25 | Male |
Carl | 30 | Male |
Dave | 35 | Male |
假设该文件保存在工程目录下的example.xlsx
文件中,那么我们可以使用如下代码进行读取:
import pandas as pd
df = pd.read_excel('./example.xlsx', sheet_name='Sheet1')
print(df)
输出结果:
Name Age Gender
0 Amy 20 Female
1 Bob 25 Male
2 Carl 30 Male
3 Dave 35 Male
可以看到,read_excel()函数返回了一个DataFrame对象,并将Excel文件中的所有行都读取并转换为DataFram中的行。
示例2
接下来,我们将读取一个部分工作表的内容。假设Excel文件example.xlsx中还有一个名为Sheet2的工作表,其内容如下:
Month | Sales |
---|---|
January | 1000 |
March | 2000 |
May | 3000 |
July | 2000 |
August | 4000 |
November | 5000 |
December | 6000 |
我们只需要读取Sheet2工作表的前3行(包括标题),并只读取Sales列,可以使用如下代码:
import pandas as pd
df = pd.read_excel('./example.xlsx', sheet_name='Sheet2', header=0, usecols='B', nrows=3)
print(df)
输出结果:
Sales
0 1000
1 2000
2 3000
这里我们通过设置header=0来指定了第一行是标题行,并使用usecols=’B’指定了只读取第二列。同时,设置了nrows=3,那么只读取了前三行。