pandas读取Excel文件
In [7]:
import pandas as pd filname = 'ch02数据导入\\student.xlsx' data = pd.read_excel(filname) dataOut[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 |
# 打印前3行数据 data.head(3)Out[9]:
姓名 | 年龄 | 爱好 | 学号 | 学费 | |
---|---|---|---|---|---|
0 | 张三 | 20 | 打球 | 12 | 5000 |
1 | 李四 | 21 | 游泳 | 13 | 6000 |
2 | 周五 | 23 | 唱歌 | 14 | 7000 |
# 打印[1-3)行数据 data[1:3]Out[10]:
姓名 | 年龄 | 爱好 | 学号 | 学费 | |
---|---|---|---|---|---|
1 | 李四 | 21 | 游泳 | 13 | 6000 |
2 | 周五 | 23 | 唱歌 | 14 | 7000 |
# 根据列名,打印某一列数据 data['姓名']Out[11]:
0 张三 1 李四 2 周五 3 赵六 4 王七 5 朱八 Name: 姓名, dtype: objectIn [12]:
# 查看所有字段 field = data.columns.tolist() fieldOut[12]:
['姓名', '年龄', '爱好', '学号', '学费']In [13]:
# 只显示第四行 data.loc[4]Out[13]:
姓名 王七 年龄 20 爱好 跑步 学号 16 学费 60 Name: 4, dtype: objectIn [15]:
# 打印多个列数据,需要双层[[]] data[["姓名", "年龄"]]Out[15]:
姓名 | 年龄 | |
---|---|---|
0 | 张三 | 20 |
1 | 李四 | 21 |
2 | 周五 | 23 |
3 | 赵六 | 25 |
4 | 王七 | 20 |
5 | 朱八 | 28 |
# 查看基础数据 # 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 |
data2 = pd.read_excel(filname,header=None) data2Out[17]:
0 | 1 | 2 | 3 | 4 | |
---|---|---|---|---|---|
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 |
data2.valuesOut[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.valuesOut[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.indexOut[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)
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。1.io :excel 路径;
In [24]:data3 = pd.read_excel(io=filname) data3Out[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]) data3Out[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) data3Out[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 |
data3 = pd.read_excel(filname,sheet_name=1) data3Out[38]:
动物 | 植物 | |
---|---|---|
0 | 小猫 | 花 |
1 | 小狗 | 树 |
3.header :指定作为列名的行,默认0,即取第一行,数据为列名行以下的数据;若数据不含列名,则设定 header = None;
In [39]:data3 = pd.read_excel(filname,sheet_name=0,header=None) data3Out[39]:
0 | 1 | 2 | 3 | 4 | |
---|---|---|---|---|---|
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 |
data3 = pd.read_excel(filname,sheet_name=0,header=2) data3Out[40]:
李四 | 21 | 游泳 | 13 | 6000 | |
---|---|---|---|---|---|
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) data3Out[42]:
张三 | 20 | 打球 | 12 | 5000 | |
---|---|---|---|---|---|
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) data3Out[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) data3Out[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']) data3Out[49]:
a | b | c | d | e | |
---|---|---|---|---|---|
0 | 张三 | 20 | 打球 | 12 | 5000 |
1 | 李四 | 21 | 游泳 | 13 | 6000 |
2 | 周五 | 23 | 唱歌 | 14 | 7000 |
3 | 赵六 | 25 | 下棋 | 15 | 500 |
4 | 王七 | 20 | 跑步 | 16 | 60 |
5 | 朱八 | 28 | 旅游 | 17 | 300 |

更多精彩