【Python】Excel数据处理
1、环境准备
> python2.7
> xlrd,xlwt模块下载与安装,前者用来读取excel文件,后者用来写入excel文件
2、实战案例
案例场景:
> excel1中包含某个市所有客户名称(可能有重复的)
> excel2中包含某个省所有客户名称(无重复)、起始IP地址和终止IP地址
案例目的:
根据excel1中客户名称到excel2中取出对应IP地址范围,要求最终汇总到一个新的excel文件中,包含客户名称和IP地址范围,
IP地址范围格式要求:如起始和终止IP相等,则以/32结尾,否则以短线连接两个地址
案例脚本:
#coding:utf-8 import sys
import xlrd
import xlwt
import csv #存储客户名称
list=[] def readexcel():
file=sys.argv[1]
print file
workbook=xlrd.open_workbook(file)
sheet1=workbook.sheet_by_index(0)
col=0
while col<sheet1.ncols:
if '客户名称' in sheet1.cell(0,col).value.encode('utf-8'):
row=1
while row<sheet1.nrows:
tmp=sheet1.cell(row,col).value.encode('gbk')
#去掉重复行
if tmp not in list:
list.append(tmp)
row+=1
col+=1
write_excel(list) #匹配结果输出客户名称、处理后的地址
def write_excel(u_list):
file=sys.argv[2]
filename=sys.argv[1].replace('.xlsx','')+'_new.csv'
workbook=xlrd.open_workbook(file)
sheet1=workbook.sheet_by_index(0)
col=0
while col<sheet1.ncols:
if '用户名称' == sheet1.cell(0,col).value.encode('utf-8'):
row=1
while row<sheet1.nrows:
uname=sheet1.cell(row,col).value.encode('gbk')
for u in u_list:
if u == uname:
print uname+'\t'+sheet1.cell(row,0).value.encode('gbk')
with open(filename,'ab') as fw:
csv_file=csv.writer(fw,dialect='excel')
new_row=[uname,sheet1.cell(row,0).value.encode('gbk')]
csv_file.writerow(new_row)
row+=1
col+=1
if __name__=='__main__':
readexcel()
案例截图:
【Python】Excel数据处理的更多相关文章
- Python之数据处理
一.CSV数据处理 CSV文件格式:逗号分隔值(Comma-Separated Value,CSV,有时也称为字符分隔值,因为分隔符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).纯文 ...
- Python+Excel 操作对比
前言 从网页爬下来的大量数据需要excel清洗成堆的科学实验数据需要导入excel进行分析作为一名面向逼格的Python程序员该如何合理而又优雅的选择生产力工具呢? 得益于辛勤劳作的python大神们 ...
- Python excel 库:Openpyxl xlrd 对比 介绍
打算用python做一个写mtk camera driver的自动化工具. 模板选用标准库里面string -> Template 即可 但要重定义替换字符,稍后说明 配置文件纠结几天:cfg, ...
- python excel操作总结
1.openpyxl包的导入 Dos命令行输入 pip install openpyxl==2.3.3 这里注意一下openpyxl包的版本问题 版本装的太高有很多api不支持了,所以笔者这里用的是2 ...
- python地理数据处理库geopy
http://blog.csdn.net/pipisorry/article/details/52205266 python地理位置处理 python地理编码地址以及用来处理经纬度的库 GeoDjan ...
- Python Excel 多sheet 多条数据 自定义写入
pip install xlwt python excel 数据写入操作,处理网站数据导出以及不是太多数据的爬虫存储, 用处蛮多的轮子. (150+++++++++++++++++++++++++++ ...
- Python空间数据处理环境搭
Python空间数据处理环境搭 Conda的下载和安装 什么是Conda? 官方定义:Package, dependency and environment management for any la ...
- xlrd python excel
xlrd python excel
- [Python]Excel编程示例教程(openpyxl)
1 前言(Preface) 博文背景:论文实验中有一大堆数据集需要观测其数据特征,通过人体肉眼,难以直观感受,故而准备通过生成Excel,可视化其评测数据. We know: Excel便于可视化分析 ...
- Python生成文本格式的excel\xlwt生成文本格式的excel\Python设置excel单元格格式为文本\Python excel xlwt 文本格式
Python生成文本格式的excel\xlwt生成文本格式的excel\Python设置excel单元格格式为文本\Python excel xlwt 文本格式 解决: xlwt 中设置单元格样式主要 ...
随机推荐
- btrfs的介绍与使用
源文献:http://www.ibm.com/developerworks/cn/linux/l-cn-btrfs/index.html#ibm-pcon 简单看了一下这篇文章,对其中一些机制的实现还 ...
- [Token] 从index.jsp中获取Token
import com.eviware.soapui.support.GroovyUtils def groovyUtils = new GroovyUtils( context ) def holde ...
- React相关知识和经验的碎片化记录
React相关知识和经验的碎片化记录 1.Warning: validateDOMNesting(...): Whitespace text nodes cannot appear as a chil ...
- Redis 数据库学习
安装(mac) 使用homebrew安装,命令是:brew install redis. 安装完成后启动命令:brew services start redis. 使用命令redis-cli进入red ...
- SQL高性能分页
分页的场景就不多说了,无处不在. 方法一:利用row_number() with C as ( select ROW_NUMBER() over(order by orderdate,orderid) ...
- Creating Custom UITableViewCells with NIB files
Maksim Pecherskiy 13 November 2012 Well this sucks. Apparently these days you can only use the Inter ...
- Javascript 控制 让输入框不能输入 数字
监听keypress事件.判断如果是数字的话阻止浏览器冒泡 <input type="text" id="test"> <script typ ...
- 多线程“尚未调用coinitialize” 报错
关于多线程中创建使用TADOConnect.TADODataSet等Com组件时,必须先初始化Com 在多线程启用执行前 CoInitialize(nil); 在多线程启用执行后 CoUninitia ...
- .net 异步函数 Async await
.net 异步函数 Async await 一旦为函数添加async关键字 该函数就是一个异步函数. 异步方法必须返回 void 或 Task<> 类型. public static ...
- C# 获取唯一数字
/// <summary> /// 如果你想生成一个数字序列而不是字符串,你将会获得一个19位长的序列.下面的方法会把GUID转换为Int64的数字序列. /// </summary ...