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]:
 
 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
 
 
原文地址:https://www.cnblogs.com/xinmomoyan/p/10875792.html