python中用pandas读写excel表格,根据关键字查找填表(类似vlookpup)
excel的vlookup出了N/A值
百度了下可能是单元格格式的问题,也可能和索引之类有关后来发现是因为查找区域用的A1:B100,往下拉自动扩展时数字会一起变成A2:B101所以找不到。。。改成A:B就行了
总之想到用python操作一下虽然朋友手动挨个先填完力
相关的库
文件类型 | 模块名 |
---|---|
xls | xlrd |
xlsx | openpyxl |
直接用pandas.read_excel()读.xlsx文件而没下支持的话会报错,会先提示下xlrd,然后下完了如果是xlsx又会提示下openpyxl当时挺害怕下完了还会提示下别的东西
读取和写入excel文件
原网址在参考列表
读: pandas.read_excel(io, sheet_name=0, header=0,…)1
写: pandas.to_excel(excel_writer, sheet_name=‘Sheet1’,…)2
io,excel_writer可以是正确的文件路径名
sheet_name是页名, 默认的0表示第一页, 也可以用字符串指定. 传入列表或None读取一个文件的多页表格/全部表格, 会存到字典里.
往一个文件写多页表格需要用pandas.ExcelWriter(path,mode=‘w’, …)3
用excelWriter的w write模式打开一个已存在的excel会抹除其中原有的内容,相当于新建了一个excel重新写(幸好我备份了数据)。可以用a append模式, 就不会删掉已存在的页(没错,不仅页的内容没了,页也会被删了). 不过我没试过to_excel 里sheet_name是已存在的页名会怎么样, 大概会覆盖掉.
读后得到的是内存里的一个拷贝, 要写入文件才能存起来.
# default usage
with ExcelWriter('path_to_file.xlsx') as writer:
df.to_excel(writer)
# To write to separate sheets in a single file:
with ExcelWriter('path_to_file.xlsx') as writer:
df1.to_excel(writer, sheet_name='Sheet1'