pandas读取Excel文件


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]:
 
  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
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]:
 
  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
In [40]:
data3 = pd.read_excel(filname,sheet_name=0,header=2)
data3
Out[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)
data3
Out[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)
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]:
 
  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
 
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM