使用read_excel()方法导入xlsx文件
import pandas as pd
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx')
print(df)
注意的几个问题:
1.依赖库安装
直接运行上述代码,报错:
因本地没有使用Anaconda,而是直接使用pip命令的pandas,导致了很多其他模块需要自己安装。
此时需要安装openpyxl 安装截图:
再次运行:
日期 分类 书名 作者
0 历史 史记 司马迁
1 小说 红楼梦 曹雪芹
2 散文 文化苦旅 余秋雨
3 历史 明朝那些事儿 当年明月
4 漫画 半小时漫画 混子曰
5 随笔 培根随笔 培根体重(kg)
2.文件路径
电脑中的文件路径默认使用\,此时需要在路径前面加r,避免路径里面的\被转义。或者可以把路径里面的所有\换成/。推荐加r。
这个规则在导入其他格式的文件时也适用。后面不再赘述。
3.sheet页的选择
数据分析测试表.xlsx表格内容如下:
3.1默认情形下导入第一个sheet页
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx')
print(df)
result:
分类 书名 作者
0 历史 史记 司马迁
1 小说 红楼梦 曹雪芹
2 散文 文化苦旅 余秋雨
3 历史 明朝那些事儿 当年明月
4 漫画 半小时漫画 混子曰
5 随笔 培根随笔 培根
3.2 设定sheet_name参数来指定要导入的sheet页内容
3.2.1通过sheet页的名字来指定所导入的sheet页
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx', sheet_name="地区分类")
print(df)
result:
区域 省份 城市
0 东北 辽宁 大连
1 西北 陕西 西安
2 华南 广东 深圳
3 华北 北京 北京
4 华中 湖北 武汉
3.2.1通过sheet页的顺序来指定所导入的sheet页
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx', sheet_name=1)
print(df)
result:
区域 省份 城市
0 东北 辽宁 大连
1 西北 陕西 西安
2 华南 广东 深圳
3 华北 北京 北京
4 华中 湖北 武汉
4.索引的指定
4.1指定行索引
将本地文件导入DataFrame时,行索引使用的从0开始的默认索引,可以通过设置设置index_col参数进行设置。该参数表示用.xlsx文件中的第几行做索引,从0开始计数
4.1.1采用表格中的第一列数据作为行索引
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx', sheet_name=1, index_col=0)
print(df)
result:
省份 城市
区域
东北 辽宁 大连
西北 陕西 西安
华南 广东 深圳
华北 北京 北京
华中 湖北 武汉
4.1.2采用表格中的第二列数据作为行索引
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx', sheet_name=1, index_col=1)
print(df)
result:
区域 城市
省份
辽宁 东北 大连
陕西 西北 西安
广东 华南 深圳
北京 华北 北京
湖北 华中 武汉
4.1.3采用默认从0开始的数作为行索引
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx', sheet_name=1, index_col=None)
print(df)
result:
区域 省份 城市
0 东北 辽宁 大连
1 西北 陕西 西安
2 华南 广东 深圳
3 华北 北京 北京
4 华中 湖北 武汉
4.2 列索引的指定
将本地文件导入DataFrame时,列索引默认使用元数据表的第一行(说白了就是表头)作为列索引,可以通过设置设置header参数进行设置。header参数值默认为0,即用第一行作为列索引。也可以是其他行,只要传入具体的行对应的数字就可以。也可以使用默认从0开始的数作为索引
4.2.1采用表格中的第一列数据作为列索引
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx', sheet_name=1, header=0)
print(df)
result:
区域 省份 城市
0 东北 辽宁 大连
1 西北 陕西 西安
2 华南 广东 深圳
3 华北 北京 北京
4 华中 湖北 武汉
4.2.2采用表格中的第二列数据作为列索引
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx', sheet_name=1, header=1)
print(df)
result:
东北 辽宁 大连
0 西北 陕西 西安
1 华南 广东 深圳
2 华北 北京 北京
3 华中 湖北 武汉
4.2.3采用默认从0开始的数作为列索引
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx', sheet_name=1, header=None)
print(df)
result:
0 1 2
0 区域 省份 城市
1 东北 辽宁 大连
2 西北 陕西 西安
3 华南 广东 深圳
4 华北 北京 北京
5 华中 湖北 武汉
5.读取数据
5.1读取行数据
5.1.1读取某一行的数据
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx', sheet_name=1)
data = df.loc[0].values
print(data)
这是读取了第一行的数据
result:
['东北' '辽宁' '大连']
5.1.2读取多行数据
此时要注意loc里面的参数必须是列表,切记。
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx', sheet_name=1)
data = df.loc[[1, 2, 3]].values
print(data)
这是读取了第二、三、四行的数据
result:
[['西北' '陕西' '西安']
['华南' '广东' '深圳']
['华北' '北京' '北京']]
5.1.3 随机获取任意几行的内容
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx', sheet_name=1)
data = df.sample(2).values
print(data)
result:
[['华北' '北京' '北京']
['西北' '陕西' '西安']]
5.1.4 读取前几行数据
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx', sheet_name=1)
print(df.head())
result:
区域 省份 城市
0 东北 辽宁 大连
1 西北 陕西 西安
2 华南 广东 深圳
3 华北 北京 北京
4 华中 湖北 武汉
head()默认读取前5行数据
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx', sheet_name=1)
print(df.head(2))
result:
区域 省份 城市
0 东北 辽宁 大连
1 西北 陕西 西安
head(2)读取前2行数据
5.2读取列数据
5.2.1读取单列数据
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx', sheet_name=1)
data = df['省份'].values
print(data)
result:
['辽宁' '陕西' '广东' '北京' '湖北']
tips:该方法无法同时读取多个列的内容,只能一次读取一行数据
5.2.2 读取指定的行列
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx', sheet_name=1)
data = df.loc[[1, 3, 4],{"省份"}].values
print(data)
这是读取了分别读取了第二行的省份数据、第四行的省份数据、第五行的省份数据
result:
[['陕西']
['北京']
['湖北']]
5.2.3 读取多行多列数据
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx', sheet_name=1)
data = df.loc[[1, 3, 4],{"省份", "城市"}].values
print(data)
这是读取了分别读取了第二行的省份和城市数据、第四行的省份和城市数据、第五行的省份和城市数据
result:
[['陕西' '西安']
['北京' '北京']
['湖北' '武汉']]
5.2.4 获取所有行的指定列数据
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx', sheet_name=1)
data = df.loc[:, {"省份", "城市"}].values
print(data)
这是读取了分别读取了表格中每一行的省份和城市数据
result:
[['辽宁' '大连']
['陕西' '西安']
['广东' '深圳']
['北京' '北京']
['湖北' '武汉']]
5.3获取行名输出
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx', sheet_name=1)
print(df.index.values)
result:
[0 1 2 3 4]
5.4 获取列名输出
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx', sheet_name=1)
print(df.columns.values)
result:
['区域' '省份' '城市']