随笔 - 363, 文章 - 0, 评论 - 2, 阅读 - 23万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

pandas读取Excel文件

Posted on   心默默言  阅读(17113)  评论(0编辑  收藏  举报

In [7]:

import pandas as pd
filname = 'ch02数据导入\\student.xlsx'
data = pd.read_excel(filname)
data
Out[7]:
 
 姓名年龄爱好学号学费
0 张三 20 打球 12 5000
1 李四 21 游泳 13 6000
2 周五 23 唱歌 14 7000
3 赵六 25 下棋 15 500
4 王七 20 跑步 16 60
5 朱八 28 旅游 17 300
In [9]:
# 打印前3行数据
data.head(3)
Out[9]:
 
 姓名年龄爱好学号学费
0 张三 20 打球 12 5000
1 李四 21 游泳 13 6000
2 周五 23 唱歌 14 7000
In [10]:
# 打印[1-3)行数据
data[1:3]
Out[10]:
 
 姓名年龄爱好学号学费
1 李四 21 游泳 13 6000
2 周五 23 唱歌 14 7000
In [11]:
# 根据列名,打印某一列数据
data['姓名']
Out[11]:
0    张三
1    李四
2    周五
3    赵六
4    王七
5    朱八
Name: 姓名, dtype: object
In [12]:
# 查看所有字段
field = data.columns.tolist()
field
Out[12]:
['姓名', '年龄', '爱好', '学号', '学费']
In [13]:
# 只显示第四行
data.loc[4]
Out[13]:
姓名    王七
年龄    20
爱好    跑步
学号    16
学费    60
Name: 4, dtype: object
In [15]:
# 打印多个列数据,需要双层[[]]
data[["姓名", "年龄"]]
Out[15]:
 
 姓名年龄
0 张三 20
1 李四 21
2 周五 23
3 赵六 25
4 王七 20
5 朱八 28
In [16]:
# 查看基础数据
# mean = 均值
# std = 方差
data.describe()  # 只针对数值型
Out[16]:
 
 年龄学号学费
count 6.000000 6.000000 6.000000
mean 22.833333 14.500000 3143.333333
std 3.188521 1.870829 3195.632436
min 20.000000 12.000000 60.000000
25% 20.250000 13.250000 350.000000
50% 22.000000 14.500000 2750.000000
75% 24.500000 15.750000 5750.000000
max 28.000000 17.000000 7000.000000
In [17]:
data2 = pd.read_excel(filname,header=None)
data2
Out[17]:
 
 01234
0 姓名 年龄 爱好 学号 学费
1 张三 20 打球 12 5000
2 李四 21 游泳 13 6000
3 周五 23 唱歌 14 7000
4 赵六 25 下棋 15 500
5 王七 20 跑步 16 60
6 朱八 28 旅游 17 300
In [18]:
data2.values
Out[18]:
array([['姓名', '年龄', '爱好', '学号', '学费'],
       ['张三', 20, '打球', 12, 5000],
       ['李四', 21, '游泳', 13, 6000],
       ['周五', 23, '唱歌', 14, 7000],
       ['赵六', 25, '下棋', 15, 500],
       ['王七', 20, '跑步', 16, 60],
       ['朱八', 28, '旅游', 17, 300]], dtype=object)
In [21]:
data.values
Out[21]:
array([['张三', 20, '打球', 12, 5000],
       ['李四', 21, '游泳', 13, 6000],
       ['周五', 23, '唱歌', 14, 7000],
       ['赵六', 25, '下棋', 15, 500],
       ['王七', 20, '跑步', 16, 60],
       ['朱八', 28, '旅游', 17, 300]], dtype=object)
In [22]:
data.index
Out[22]:
RangeIndex(start=0, stop=6, step=1)
 

pandas参数说明

pandas.read_excel(io, sheet_name=0, header=0, skiprows=None, skip_footer=0, index_col=None, names=None, usecols=None, parse_dates=False, date_parser=None, na_values=None, thousands=None, convert_float=True, converters=None, dtype=None, true_values=None, false_values=None, engine=None, squeeze=False, **kwds)

 

1.io :excel 路径;

In [24]:
data3 = pd.read_excel(io=filname)
data3
Out[24]:
 
 姓名年龄爱好学号学费
0 张三 20 打球 12 5000
1 李四 21 游泳 13 6000
2 周五 23 唱歌 14 7000
3 赵六 25 下棋 15 500
4 王七 20 跑步 16 60
5 朱八 28 旅游 17 300
 

2.sheetname:默认是sheetname为0,返回多表使用sheetname=[0,1],若sheetname=None是返回全表 。注意:int/string返回的是dataframe,而none和list返回的是dict of dataframe。

In [32]:
data3 = pd.read_excel(filname,sheet_name=[0,1])
data3
Out[32]:
OrderedDict([(0,    姓名  年龄  爱好  学号    学费
              0  张三  20  打球  12  5000
              1  李四  21  游泳  13  6000
              2  周五  23  唱歌  14  7000
              3  赵六  25  下棋  15   500
              4  王七  20  跑步  16    60
              5  朱八  28  旅游  17   300), (1,   动物    植物
              0    小猫  花
              1    小狗  树)])
In [37]:
data3 = pd.read_excel(filname,sheet_name=0)
data3
Out[37]:
 
 姓名年龄爱好学号学费
0 张三 20 打球 12 5000
1 李四 21 游泳 13 6000
2 周五 23 唱歌 14 7000
3 赵六 25 下棋 15 500
4 王七 20 跑步 16 60
5 朱八 28 旅游 17 300
In [38]:
data3 = pd.read_excel(filname,sheet_name=1)
data3
Out[38]:
 
 动物植物
0 小猫
1 小狗
 

3.header :指定作为列名的行,默认0,即取第一行,数据为列名行以下的数据;若数据不含列名,则设定 header = None;

In [39]:
data3 = pd.read_excel(filname,sheet_name=0,header=None)
data3
Out[39]:
 
 01234
0 姓名 年龄 爱好 学号 学费
1 张三 20 打球 12 5000
2 李四 21 游泳 13 6000
3 周五 23 唱歌 14 7000
4 赵六 25 下棋 15 500
5 王七 20 跑步 16 60
6 朱八 28 旅游 17 300
In [40]:
data3 = pd.read_excel(filname,sheet_name=0,header=2)
data3
Out[40]:
 
 李四21游泳136000
0 周五 23 唱歌 14 7000
1 赵六 25 下棋 15 500
2 王七 20 跑步 16 60
3 朱八 28 旅游 17 300
 

4.skiprows:省略指定行数的数据

In [42]:
data3 = pd.read_excel(filname, sheet_name=0, skiprows=1)
data3
Out[42]:
 
 张三20打球125000
0 李四 21 游泳 13 6000
1 周五 23 唱歌 14 7000
2 赵六 25 下棋 15 500
3 王七 20 跑步 16 60
4 朱八 28 旅游 17 300
 

5.skipfooter:省略从尾部数的行数据

In [44]:
data3 = pd.read_excel(filname, sheet_name=0, skipfooter=1)
data3
Out[44]:
 
 姓名年龄爱好学号学费
0 张三 20 打球 12 5000
1 李四 21 游泳 13 6000
2 周五 23 唱歌 14 7000
3 赵六 25 下棋 15 500
4 王七 20 跑步 16 60
 

6.index_col :指定列为索引列,也可以使用 u’string’

In [46]:
data3 = pd.read_excel(filname, sheet_name=0, index_col=1)
data3
Out[46]:
 
 姓名爱好学号学费
年龄    
20 张三 打球 12 5000
21 李四 游泳 13 6000
23 周五 唱歌 14 7000
25 赵六 下棋 15 500
20 王七 跑步 16 60
28 朱八 旅游 17 300
 

7.names:指定列的名字,传入一个list数据

In [49]:
data3 = pd.read_excel(filname, sheet_name=0,
                      names=['a', 'b', 'c', 'd', 'e'])
data3
Out[49]:
 
 abcde
0 张三 20 打球 12 5000
1 李四 21 游泳 13 6000
2 周五 23 唱歌 14 7000
3 赵六 25 下棋 15 500
4 王七 20 跑步 16 60
5 朱八 28 旅游 17 300
 
 
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示