python处理excel表格主要用到xlrd和xlwt这两个库,xlrd读excel,xlwt写excel
写表格
-
下载安装xlwt
pip install xlwt -
示例,附代码块
import xlwt
#设置表格样式
def set_style(name,height,bold=False):
style = xlwt.XFStyle()
font = xlwt.Font()
font.name = name
font.bold = bold
font.color_index = 4
font.height = height
style.font = font
return style
#写Excel
def write_excel():
#创建工作薄,并制定写入的格式
f = xlwt.Workbook(encoding='utf8')
#创建工作表sheet,指定是否可重复写入数据,通常,sheet名如果是中文的情况下在前面加u,不过不加也不影响
sheet1 = f.add_sheet(u'学生',cell_overwrite_ok = False)
row0 = [u"姓名",u"年龄",u"出生日期",u"爱好"]
colum0 = ["张三","李四","恋习Python","小明","小红","无名"]
#写第一行
for i in range(0,len(row0)):
sheet1.write(0,i,row0[i],set_style('Times New Roman',220,True))
#写第一列
for i in range(0,len(colum0)):
sheet1.write(i+1,0,colum0[i],set_style('Times New Roman',220,True))
# 合并单元格 sheet.write_merge(x,x+m,y,y+n,string,style)
# x表示行,y表示列,m表示跨韩个数,n表示跨列个数
sheet1.write_merge(6,6,1,3,'未知')#合并行单元格
sheet1.write_merge(1,2,3,3,'打游戏')#合并列单元格
sheet1.write_merge(4,5,3,3,'打篮球')
f.save('test2.xls')
if __name__ == '__main__':
write_excel()
- 示例,excel表
读表格
import xlrd
import pandas as pd
import numpy as np
def read_excel():
data= xlrd.open_workbook('雪亮项目.xls')#打开Excel文件读取数据
df=data.sheet_by_name("一机一档")##通过工作簿名称获取
file = open('gd5.txt','w')
for i in range(df.nrows):
text=df.cell_value(i,14)
text2=df.cell_value(i,17)
file.write(text)
file.write('\t')
file.write(str(text2))
file.write('\t')
file.write('\n')
file.close()
if __name__ == '__main__':
read_excel()
末尾介绍一下Pandas吧~~
Pandas
DataFrame是Python中Pandas库中的一种数据结构,类似于excel是一种二维表。DataFrame可以设置列名columns与行名index。
直接创建
import pandas as pd
df = pd.DataFrame(np.random.randn(4,4),index = list('ABCD'),colunms = list('奇奇怪怪'))
pandas.DataFrame(param1, param2, param3)
param1: 存放在 DataFrame里面的数据
param2: 行名(行索引)
param3: 列名(列索引)
使用字典创建
dic = {'name':['小明','小红','狗蛋','铁柱'],
'age':[17,20,5,40],
'gender': ['男','女','女','男']
}
df2 = pd.DataFrame(dic)
print(df2)
------------呃呃呃呃-----到这里好像跑题了------回来,接着我们开始读取数据------------
查看数据值
values
使用values可以查看DataFrame里的数据集值,返回的是一个数组。
import tensorflow.compat.v1 as tf
import pandas as pd
import numpy as np
dic = {'name':['小明','小红','狗蛋','铁柱'],
'age':[17,20,5,40],
'gender': ['男','女','女','男']
}
df2 = pd.DataFrame(dic)
print(df2)
print(df2.values)
loc 或iloc 获取行
loc 根据所定义的index来获取行
iloc 根据行号来获取行,行号从0递增
dm = pd.DataFrame(np.random.randn(4,4),index = list('ABCD'),columns = list('EFGH'))
print('+++++++++++++++++')
print(dm)
print('**************************')
print(dm.loc['B'])
print('**************************')
print(dm.iloc[1])
获取列
print(dm['E'])