【目录】
文章目录
- 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如下所示:
示例.xlsx
文件的第2个sheet如下所示:
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)
【图片总结】