
导入xlrd库。
要导入xlrd库,它是读取excel中数据的库,解压所下载的压缩包,用cmd命令行CD到解压目录,执行pythonsetuppyinstall命令,要导入xlwt库,它是开发人员用于生成与MicrosoftExcel版本95到2003兼容的电子表格文件的库。接着用cmd命令行切换到下载文件所解压的目录,输入pythonsetuppyinstall命令,如无意外则安装成功。
openpyxl是用于读取和写入Excel2010xlsx/xlsm/xltx/xltm文件的Python库。
VLOOKUP是一个查找函数,给定一个查找的目标,它就能从指定的查找区域中查找返回想要查找到的值。它的基本语法为:
VLOOKUP(查找目标,查找范围,返回值的列数,精确OR模糊查找)
下面以一个实例来介绍一下这四个参数的使用
例1:如下图所示,要求根据表二中的姓名,查找姓名所对应的年龄。
公式:B13 =VLOOKUP(A13,$B$2:$D$8,3,0)
参数说明:
1 查找目标:就是你指定的查找的内容或单元格引用。本例中表二A列的姓名就是查找目标。我们要根据表二的“姓名”在表一中A列进行查找。
公式:B13 =VLOOKUP(A13,$B$2:$D$8,3,0)
2 查找范围(VLOOKUP(A13,$B$2:$D$8,3,0) ):指定了查找目标,如果没有说从哪里查找,EXCEL肯定会很为难。所以下一步我们就要指定从哪个范围中进行查找。VLOOKUP的这第二个参数可以从一个单元格区域中查找,也可以从一个常量数组或内存数组中查找。本例中要从表一中进行查找,那么范围我们要怎么指定呢?这里也是极易出错的地方。大家一定要注意,给定的第二个参数查找范围要符合以下条件才不会出错:
A 查找目标一定要在该区域的第一列。本例中查找表二的姓名,那么姓名所对应的表一的姓名列,那么表一的姓名列(列)一定要是查找区域的第一列。象本例中,给定的区域要从第二列开始,即$B$2:$D$8,而不能是$A$2:$D$8。因为查找的“姓名”不在$A$2:$D$8区域的第一列。
B 该区域中一定要包含要返回值所在的列,本例中要返回的值是年龄。年龄列(表一的D列)一定要包括在这个范围内,即:$B$2:$D$8,如果写成$B$2:$C$8就是错的。
3 返回值的列数(B13 =VLOOKUP(A13,$B$2:$D$8,3,0))。这是VLOOKUP第3个参数。它是一个整数值。它怎么得来的呢。它是“返回值”在第二个参数给定的区域中的列数。本例中我们要返回的是“年龄”,它是第二个参数查找范围$B$2:$D$8的第3列。这里一定要注意,列数不是在工作表中的列数(不是第4列),而是在查找范围区域的第几列。如果本例中要是查找姓名所对应的性别,第3个参数的值应该设置为多少呢。答案是2。因为性别在$B$2:$D$8的第2列中。
4 精确OR模糊查找(VLOOKUP(A13,$B$2:$D$8,3,0) ),最后一个参数是决定函数精确和模糊查找的关键。精确即完全一样,模糊即包含的意思。第4个参数如果指定值是0或FALSE就表示精确查找,而值为1 或TRUE时则表示模糊。这里兰色提醒大家切记切记,在使用VLOOKUP时千万不要把这个参数给漏掉了,如果缺少这个参数默为值为模糊查找,我们就无法精确查找到结果了。
1、接下来,我们的任务是通过利用VLOOKUP函数来实现查找同学C的成绩。为此在单元格中输入“=VLOOKUP”,此时就会发现VLOOKUP包括三个参数和一个可选参数。
其中“lookup_value”是指要查找的值。
参数“table_array”是指搜索的区域,在此在除标题之后的整个数据区域。
第三个参数“col_index_num”是指整个函数返回单元格所在的列号。
2、最后以右括号结尾,并按回车键,就出现想要的结果啦。
有时我们需要将一个 Excel表格文件 中的全部或一部分数据 导入到Python中 ,并将其通过 字典格式 来存储;那么如何实现上述 *** 作呢?
我们以如下所示的一个表格( xlsx 格式)作为简单的示例。其中,表格共有两列,第一列为 学号 ,第二列为 姓名 ,且每一行的 学号 都不重复;同时表格的第一行为表头。
假设我们需要将第一列的 学号 数据作为字典的 键 ,而第二列 姓名 数据作为字典的 值 。
首先,导入必要的库。
随后,列出需要转换为字典格式数据的Excel文件的路径与名称,以及数据开头所在行、数据的总行数。在这里,由于第一行是表头,因此开头所在行 look_up_table_row_start 就是 2 ;同时这个表格共有32位同学的信息,因此总行数 look_up_table_row_number 就是 32 。
接下来,我们就可以直接依次读取Excel表格文件中的数据,并将其导入到字典格式的变量 name_number_dict 中。
至此,大功告成啦~我们来看一看 name_number_dict 此时的状态:
其中, Key 就是原本Excel中的 学号 , Value (就是右侧的马赛克区域)就是原本Excel中的 姓名 ;还可以从上图的标题中看到,这个字典共有32个 elements ,也就是对应着原本Excel中32位同学的信息。
需要使用xlrd和MySQLdb库,可自行百度下载。
#coding:utf-8
import xlrd
import MySQLdb
data=xlrdopen_workbook(r'F:\test\baseParamxls') #读取表格db="测试" #需要 *** 作的数据库
conn= MySQLdbconnect(
host='localhost',
port = 3306,
user='root',
passwd='123456',
charset='utf8'
) #连接mysql
cur=conncursor()
curexecute("drop database if exists "+db)curexecute("create database "+db)
connselect_db(db) #初始化数据库
sheet_names=datasheet_names()
for sheet_name in sheet_names:
sheet=datasheet_by_name(sheet_name)
row_data=sheetrow_values(0)
row_data=' varchar(256) DEFAULT NULL, 'join(row_data)row_data=row_data+' varchar(256) DEFAULT NULL'
curexecute('create table '+sheet_name+'('+row_data+')') #数据库中创建表格ss=''
for index in range(sheetncols):
ss=ss+'%s, '
ss=ssrstrip(', ')
sql="insert "+ sheet_name+ " values(" +ss +")"param=[]
for index in range(1,sheetnrows):
row_values=sheetrow_values(index)
paramappend(row_values)
curexecutemany(sql,param) #插入数据
conncommit()
curclose()
connclose() #释放数据连接
1确定方案
eg excel data 文件 -> oracle data 文件 (其实导入工具已经至此某些excel格式,不需要python再转换)
2了解中间文件格式,或者定出中间sql文件规约
3选型技术,找python库 google python+excel,选定导入方式
4 开工写code
以上就是关于Excel用Python读取清洗后怎么写入数据全部的内容,包括:Excel用Python读取清洗后怎么写入数据、python怎么从excel读取数据、Python读取Excel表格数据并以字典dict格式存储等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)