7. read_excel()函数读取Excel文件

【目录】

文章目录

    • 1. pandas库读取数据
    • 2. read_excel()函数读取Excel文件
    • 3. 准备工作
    • 4. 路径前的`r`是什么
    • 5. io参数 = 绝对路径
    • 6. io = 相对路径
    • 7. sheet_name:要读取的sheet的名称或索引
      • 7.1 sheet_name参数 = 名字
      • 7.2 sheet_name参数 = 顺序
    • 8. index_col参数指定行索引
    • 9. header参数指定列索引
    • 10. usecols参数指定读取列
    • 11. names参数自定义列名(列表形式)
    • 12. 总结

【正文】

学习时间:30分钟。

1. pandas库读取数据

Pandas里的read_x方法可以读取外部数据。

x表示要读取的文件的格式。

  • 读取xlsx文件用read_excel方法。
  • 读取csv文件用read_csv方法。
  • 读取txt文件用read_table方法。

2. read_excel()函数读取Excel文件

read_excel()函数是pandas库中用于读取Excel文件的函数。

【语法】

pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None)

这里用的语法是调用库的函数

库名.函数名( )

pandas是库名,这里通常用的是它的简写pd

read_excel是函数名,在Python中,读取通常都会用到跟read相关的函数。

excel表示要读取的文件类型。

【参数】

  • io:要读取的Excel文件的路径(字符串)或者可迭代对象,例如文件对象、Excel表格URL、Excel文件中的表名等。
  • sheet_name:要读取的Sheet的名称或索引(默认为0)。
  • header:指定列名所在的行数,默认为0,表示第一行。
  • names:自定义列名(列表形式),如果不指定,则默认使用Excel文件中的列名。
  • index_col:指定作为行索引的列,默认为None,表示不使用任何列作为索引。
  • usecols:指定要读取的列(列表形式),可以是列名或列索引。

3. 准备工作

注意使用read_excel()函数前需先安装pandas库。

在读取文件时首先要确定文件路径,即要读取的文件存在电脑中的哪个文件夹下。

以读取示例.xlsx为列。

我的示例.xlsx的绝对路径如下:

D:\安迪笔记\4.数据分析\7\示例.xlsx

我的示例.xlsx的相对路径如下:

4.数据分析\7\示例.xlsx

注意你的路径和我的不同哦!!!

示例.xlsx文件里有两个表单。

示例.xlsx文件的第1个sheet如下所示:

7. read_excel()函数读取Excel文件_第1张图片

示例.xlsx文件的第2个sheet如下所示:

7. read_excel()函数读取Excel文件_第2张图片

4. 路径前的r是什么

file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

电脑中的文件路径默认使用\

Python中的转义字符通常以反斜杠\开头。

如果路径中有\,且\后有转义字符时,程序会默认为是转义字符而报错。

因此可以在路径前面加一个字符r,告知程序这是路径。

如果不加r,可以把路径里面的所有\转换成/

5. io参数 = 绝对路径

【代码示例】

# 导入pandas库并简写为pd
import pandas as pd

# 文件的绝对路径
file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

# 调用函数:库名.函数名()
# pd是库名
# read_excel是函数名
# io参数=file,file是路径
df = pd.read_excel(file)

# 输出读取到的数据
print(df)

【终端输出】

   序号       学号  籍贯 性别
0   1  2023001  广东  男
1   2  2023002  河南  男
2   3  2023003  湖北  男
3   4  2023004  河南  男
4   5  2023005  河南  男
5   6  2023006  其他  男
6   7  2023007  湖北  女

输出的是示例.xlsx文件的中的第一个sheet学生里面的数据。

6. io = 相对路径

【代码示例】

# 导入pandas库并简写为pd
import pandas as pd

# 文件的相对路径
file = r"4.数据分析\7\示例.xlsx"

# 调用函数:库名.函数名()
# pd是库名
# read_excel是函数名
# io参数=file,file是路径
df = pd.read_excel(file)

# 输出读取到的数据
print(df)

【终端输出】

   序号       学号  籍贯 性别
0   1  2023001  广东  男
1   2  2023002  河南  男
2   3  2023003  湖北  男
3   4  2023004  河南  男
4   5  2023005  河南  男
5   6  2023006  其他  男
6   7  2023007  湖北  女

7. sheet_name:要读取的sheet的名称或索引

xlsx格式的文件会有多个sheet。

可以通过设定sheet_name参数指定要读取哪个sheet表。

sheet_name参数有3种情况:

  • 不指定sheet_name参数:默认读取第一个sheet文件。
  • sheet_name参数 = sheet名字
  • sheet_name参数 = sheet顺序

7.1 sheet_name参数 = 名字

【sheet_name =“学生”】

# 读取pandas库并简写为pd
import pandas as pd

# 文件的绝对路径
file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

# sheet_name ="学生",读取学生sheet里的数据
df = pd.read_excel(file, sheet_name ="学生")

print(df)

【终端输出】

   序号       学号  籍贯 性别
0   1  2023001  广东  男
1   2  2023002  河南  男
2   3  2023003  湖北  男
3   4  2023004  河南  男
4   5  2023005  河南  男
5   6  2023006  其他  男
6   7  2023007  湖北  女

【sheet_name =“销售”】

# 读取pandas库并简写为pd
import pandas as pd

# 文件的绝对路径
file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

# sheet_name ="销售",读取销售sheet里的数据
df = pd.read_excel(file, sheet_name ="销售")

print(df)

【终端输出】

   序号     日期  省份  订单量  单价  销售额
0   1  45170  广东    0  10    0
1   2  45171  河南    0  10    0
2   3  45172  湖北    1  10   30
3   4  45173  河南    0  10    0
4   5  45174  河南    0  10    0

7.2 sheet_name参数 = 顺序

注意顺序从0开始计数。

【sheet_name=0,读取第1个sheet】

# 读取pandas库并简写为pd
import pandas as pd

file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

# sheet_name=0,读取第1个sheet
df = pd.read_excel(file, sheet_name =0 )

print(df)

【终端输出】

   序号       学号  籍贯 性别
0   1  2023001  广东  男
1   2  2023002  河南  男
2   3  2023003  湖北  男
3   4  2023004  河南  男
4   5  2023005  河南  男
5   6  2023006  其他  男
6   7  2023007  湖北  女

【sheet_name=1,读取第2个sheet】

# 读取pandas库并简写为pd
import pandas as pd

file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

# sheet_name=1,读取第2个sheet
df = pd.read_excel(file, sheet_name =1 )

print(df)

【终端输出】

   序号     日期  省份  订单量  单价  销售额
0   1  45170  广东    0  10    0
1   2  45171  河南    0  10    0
2   3  45172  湖北    1  10   30
3   4  45173  河南    0  10    0
4   5  45174  河南    0  10    0

8. index_col参数指定行索引

【代码示例】

# 读取pandas库并简写为pd
import pandas as pd

file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

print("**********默认行索引**********")
df = pd.read_excel(file)

print(df)

print("**********指定行索引为0**********")
df = pd.read_excel(file, index_col=0)
print(df)

print("**********指定行索引为1**********")
df = pd.read_excel(file, index_col=1)
print(df)

print("**********指定行索引为2**********")
df = pd.read_excel(file, index_col=2)
print(df)

print("**********指定行索引为3**********")
df = pd.read_excel(file, index_col=3)
print(df)

【终端输出】

**********默认行索引**********
   序号       学号  籍贯 性别
0   1  2023001  广东  男
1   2  2023002  河南  男
2   3  2023003  湖北  男
3   4  2023004  河南  男
4   5  2023005  河南  男
5   6  2023006  其他  男
6   7  2023007  湖北  女
**********指定行索引为0**********
         学号  籍贯 性别
序号                
1   2023001  广东  男
2   2023002  河南  男
3   2023003  湖北  男
4   2023004  河南  男
5   2023005  河南  男
6   2023006  其他  男
7   2023007  湖北  女
**********指定行索引为1**********
         序号  籍贯 性别
学号                
2023001   1  广东  男
2023002   2  河南  男
2023003   3  湖北  男
2023004   4  河南  男
2023005   5  河南  男
2023006   6  其他  男
2023007   7  湖北  女
**********指定行索引为2**********
    序号       学号 性别
籍贯                
广东   1  2023001  男
河南   2  2023002  男
湖北   3  2023003  男
河南   4  2023004  男
河南   5  2023005  男
其他   6  2023006  男
湖北   7  2023007  女
**********指定行索引为3**********
    序号       学号  籍贯
性别                 
男    1  2023001  广东
男    2  2023002  河南
男    3  2023003  湖北
男    4  2023004  河南
男    5  2023005  河南
男    6  2023006  其他
女    7  2023007  湖北

index_col参数指定使用哪一列作为行索引。

默认使用0 1 2 3作为行索引。

因为参数从0开始计数。

  • index_col=0时,即指定第1例序号作为行索引。
  • index_col=1时,即指定第2例学号作为行索引。
  • index_col=2时,即指定第3例籍贯作为行索引。
  • index_col=3时,即指定第4例性别作为行索引。

当指定行索引时,输出的结果少一列,默认行索引列消失。

9. header参数指定列索引

【代码示例】

# 读取pandas库并简写为pd
import pandas as pd

file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

print("**********默认列索引**********")
df = pd.read_excel(file)

print(df)

print("**********指定列索引为0**********")
df = pd.read_excel(file,  header=0)
print(df)

print("**********指定列索引为1**********")
df = pd.read_excel(file, header=1)
print(df)

print("**********指定列索引为2**********")
df = pd.read_excel(file, header=2)
print(df)

print("**********指定列索引为3**********")
df = pd.read_excel(file, header=3)
print(df)

【终端输出】

**********默认列索引**********
   序号       学号  籍贯 性别
0   1  2023001  广东  男
1   2  2023002  河南  男
2   3  2023003  湖北  男
3   4  2023004  河南  男
4   5  2023005  河南  男
5   6  2023006  其他  男
6   7  2023007  湖北  女
**********指定列索引为0**********
   序号       学号  籍贯 性别
0   1  2023001  广东  男
1   2  2023002  河南  男
2   3  2023003  湖北  男
3   4  2023004  河南  男
4   5  2023005  河南  男
5   6  2023006  其他  男
6   7  2023007  湖北  女
**********指定列索引为1**********
   1  2023001  广东  男
0  2  2023002  河南  男
1  3  2023003  湖北  男
2  4  2023004  河南  男
3  5  2023005  河南  男
4  6  2023006  其他  男
5  7  2023007  湖北  女
**********指定列索引为2**********
   2  2023002  河南  男
0  3  2023003  湖北  男
1  4  2023004  河南  男
2  5  2023005  河南  男
3  6  2023006  其他  男
4  7  2023007  湖北  女
**********指定列索引为3**********
   3  2023003  湖北  男
0  4  2023004  河南  男
1  5  2023005  河南  男
2  6  2023006  其他  男
3  7  2023007  湖北  女

header参数指定使用哪一行作为列索引。

默认使用第1行作为列索引。

因为参数从0开始计数。

  • header=0时,即指定第1行序号 学号 籍贯 性别作为列索引。
  • header=1时,即指定第2行1 2023001 广东 男作为列索引。
  • header=2时,即指定第3行2 2023002 河南 男作为列索引。
  • header=3时,即指定第4行3 2023003 湖北 男作为列索引。

当设置列索引,输出的结果少一行,默认列索引消失。

10. usecols参数指定读取列

当表的列数太多,我们又不需要那么多列时,我们可以通过设定usecols参数来指定要读取的列。

usecols的参数为列表。

【代码示例】

# 读取pandas库并简写为pd
import pandas as pd

file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

print("**********读取第1例数据**********")
df = pd.read_excel(file, usecols=[0])
print(df)

print("**********读取第3例数据**********")
df = pd.read_excel(file, usecols=[2])
print(df)

print("**********读取第1例、第3列数据**********")
df = pd.read_excel(file, usecols=[0, 2])
print(df)

print("**********读取第1例、第3列数据、第4列数据**********")
df = pd.read_excel(file, usecols=[0,2,3])
print(df)

【终端输出】

**********读取第1例数据**********
   序号
0   1
1   2
2   3
3   4
4   5
5   6
6   7
**********读取第3例数据**********
   籍贯
0  广东
1  河南
2  湖北
3  河南
4  河南
5  其他
6  湖北
**********读取第1例、第3列数据**********
   序号  籍贯
0   1  广东
1   2  河南
2   3  湖北
3   4  河南
4   5  河南
5   6  其他
6   7  湖北
**********读取第1例、第3列数据、第4列数据**********
   序号  籍贯 性别
0   1  广东  男
1   2  河南  男
2   3  湖北  男
3   4  河南  男
4   5  河南  男
5   6  其他  男
6   7  湖北  女

【代码解析】

usecols=[2]
usecols=[0,2,3]

usecols参数存储的对象时列表。

因为从0开始计数,当列表中只有一个数据2时,表示读取的是第3列。

当列表中有多个数据时,表示读取多列。

11. names参数自定义列名(列表形式)

names参数自定义列名(列表形式),如果不指定,则默认使用Excel文件中的列名。

【代码示例】

# 读取pandas库并简写为pd
import pandas as pd

file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

# names参数指定 A B C D 为列名
df = pd.read_excel(file, names=["A","B","C","D"])
print(df)

【终端输出】

   A        B   C  D
0  1  2023001  广东  男
1  2  2023002  河南  男
2  3  2023003  湖北  男
3  4  2023004  河南  男
4  5  2023005  河南  男
5  6  2023006  其他  男
6  7  2023007  湖北  女

12. 总结

【代码总结】

# 导入pandas库并简写为pd
import pandas as pd

# 文件的绝对路径
file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

# 5. 读取文件
df = pd.read_excel(file)

# 7.1 sheet_name ="学生",读取学生sheet里的数据
df = pd.read_excel(file, sheet_name ="学生")

# 7.2 sheet_name=0,读取第1个sheet里的数据
df = pd.read_excel(file, sheet_name =0 )

# 8. index_col=1,指定第2例`学号`作为行索引。
df = pd.read_excel(file, index_col=1)

# 9. header=2,指定第3行`2  2023002  河南  男`作为列索引
df = pd.read_excel(file, header=2)

# 10. usecols=[0,2,3]读取第1例、第3列数据、第4列数据
df = pd.read_excel(file, usecols=[0,2,3])

# 11. names参指定 A B C D 为列名
df = pd.read_excel(file, names=["A","B","C","D"])

# 输出读取到的数据
print(df)

【图片总结】

7. read_excel()函数读取Excel文件_第3张图片

你可能感兴趣的:(Python数据分析,excel,python)