#引入pandas模块
import pandas as pd
#引入Excel读写模块
import xlrd
#引入文件目录模块
import os
#文件位置
os.chdir(r"D:")
fname = "成绩.xlsx"
#方法一:默认读取第一个表单
df=pd.read_excel(fname)#这个会直接默认读取到这个Excel的第一个表单
data=df.head()#默认读取前5行的数据
print("获取到所有的值:\n{0}".format(data))#格式化输出
#方法二:通过指定表单名的方式来读取
df=pd.read_excel(fname,sheet_name='xuehao')#可以通过sheet_name来指定读取的表单
data=df.head()#默认读取前5行的数据
print("获取到所有的值:\n{0}".format(data))#格式化输出
#方法三:通过表单索引来指定要访问的表单,0表示第一个表单
#也可以采用表单名和索引的双重方式来定位表单
#也可以同时定位多个表单,方式都罗列如下所示
df=pd.read_excel(fname,sheet_name=['fenshu','xuehao'])#可以通过表单名同时指定多个
# df=pd.read_excel(fname,sheet_name=0)#可以通过表单索引来指定读取的表单
# df=pd.read_excel(fname,sheet_name=['fenshu',1])#可以混合的方式来指定
# df=pd.read_excel(fname,sheet_name=[0,1])#可以通过索引 同时指定多个
data=df.values#获取所有的数据,注意这里不能用head()方法哦~
#1:读取指定行
df=pd.read_excel(fname)#这个会直接默认读取到这个Excel的第一个表单
data=df.ix[0].values#0表示第一行 这里读取数据并不包含表头,要注意哦!
print("读取指定行的数据:\n{0}".format(data))
#2:读取指定的多行,数据会存在嵌套的列表里面:
df=pd.read_excel(fname)
data=df.ix[[1,2]].values#读取指定多行的话,就要在ix[]里面嵌套列表指定行数
print("读取指定行的数据:\n{0}".format(data))
#3:读取指定的行列:
df=pd.read_excel(fname)
data=df.ix[1,2]#读取第一行第二列的值,这里不需要嵌套列表
print("读取指定行的数据:\n{0}".format(data))
#4:读取指定的多行多列值:
df=pd.read_excel(fname)
data=df.ix[[1,2],['语文','数学']].values#读取第一行第二行的语文以及数学列的值,这里需要嵌套列表
print("读取指定行的数据:\n{0}".format(data))
#5:获取所有行的指定列
df=pd.read_excel(fname)
data=df.ix[:,['语文','数学']].values#读所有行的语文以及数学列的值,这里需要嵌套列表
print("读取指定行的数据:\n{0}".format(data))
#6:获取行号并打印输出
df=pd.read_excel(fname)
print("输出行号列表",df.index.values)
#输出结果是:
#输出行号列表 [0 1 2 3 4 5]
#7:获取列名并打印输出
df=pd.read_excel(fname)
print("输出列标题",df.columns.values)
#运行结果如下所示:
#输出列标题 ['姓名' '语文' '数学' '英语']
#8:获取指定行数的值:
df=pd.read_excel(fname)
print("输出值",df.sample(3).values)#这个方法类似于head()方法以及df.values方法
"""输出值
[['王五' 90 100 100]
['白了' 82 100 93]
['壹万' 82 100 93]]
"""
#9:获取指定列的值:
df=pd.read_excel(fname)
print("输出值\n",df['语文'].values)
#四:pandas处理Excel数据成为字典
df=pd.read_excel(fname)
test_data=[]
for i in df.index.values:#获取行号的索引,并对其进行遍历:
#根据i来获取每一行指定的数据 并利用to_dict转成字典
row_data=df.ix[i,['姓名','语文','数学','英语']].to_dict()
test_data.append(row_data)
print("最终获取到的数据是:{0}".format(test_data))
""""
最后得到的结果是:
最终获取到的数据是:
[{'姓名': '张三', '语文': 100, '数学': 90, '英语': 100},
{'姓名': '李四', '语文': 88, '数学': 88, '英语': 80},
{'姓名': '王五', '语文': 90, '数学': 100, '英语': 100},
{'姓名': '陈起', '语文': 82, '数学': 100, '英语': 93},
{'姓名': '白了', '语文': 82, '数学': 100, '英语': 93},
{'姓名': '壹万', '语文': 82, '数学': 100, '英语': 93}]
"""
更多精彩内容请关注微信公众号“读书同友会”