python统计excel_Python操作excel做些统计
作为一名苦逼的打杂人员,经常要为N个部门做些统计工作,包括但不限于工作量统计、收入统计、服务质量统计。
数据格式集中在EXCEL,通常包含一个索引列,根据这个列获得一些属性数据,比如人员对应工作量等。
长长一串事务脚本通常太过ugly and dirty,Pandas有用牛刀杀鸡之嫌。
于是资深处女座精神洁癖发作,用xlrd搞了一个excel类,日常作些计数、求和、求平均的业务,还算得心应手。
PS:Xlrd新版支持.xlsx了,赞一个
直接上代码吧~
import xlrd
from collections import defaultdict, Counter
class ExcelData():
#指定excel文件位置以及索引列的名字
def __init__(self, xlsx_path, index_col=''):
workbook = xlrd.open_workbook(xlsx_path)
self.worksheet = workbook.sheet_by_index(0)
self.nrows = self.worksheet.nrows
self.ncols = self.worksheet.ncols
self.index_col = index_col
#近列名返回对应列的数据list
def get_col_by_name(self, col_name):
try:
index = self.worksheet.row_values(0).index(col_name)
except:
return None
# 返回列list,去除列名
return self.worksheet.col_values(index)[1:]
# 返回索引列及指定列的字典
def get_col_values(self, col_name):
index_col = self.get_col_by_name(self.index_col)
col = self.get_col_by_name(col_name)
return dict(zip(index_col, col))
# 指定列计数
def col_count(self, col_name):
col_values = self.get_col_by_name(col_name)
if not col_values:
r = None
else:
r = Counter(col_values)
return r
# 筛选列值按索引列计数
def index_col_count(self, col_name, filter=''):
c = defaultdict(int)
for i in range(self.nrows - 1):
if self.get_col_by_name(col_name)[i] == filter:
c[self.get_col_by_name(self.index_col)[i]] += 1
return c
# 指定列按索引列求和
def index_col_sum(self, col_name):
s = defaultdict(float)
for i in range(self.nrows - 1):
# 字典求和
s[self.get_col_by_name(self.index_col)[i]] += float(self.get_col_by_name(col_name)[i])
return s
# 指定列按索引列求平均
def index_col_avg(self, sum_dict):
a = defaultdict(float)
index_count = self.col_count(self.index_col)
for k, v in sum_dict.iteritems():
a[k] = v / index_count[k]
return a
python统计excel_Python操作excel做些统计相关推荐
- python连接excel_Python操作Excel
使用python来操作Excel需要用到xlrd和xlwt这两个库,作用是在python中读取和写入excel数据,使用前需要安装和import导入: 1.Python 读 excel数据 使用Pyt ...
- 怎么python编程excel_Python操作excel
python 读写 excel 有好多选择,但是,方便操作的库不多,在我尝试了几个库之后,我觉得两个比较方便的库分别是 xlrd/xlwt.openpyxl. 之所以推荐两个库是因为这两个库分别操作的 ...
- Python读取和操作Excel(.xlsx)文件
Python读取和操作Excel(.xlsx)文件 使用openpyxl库来控制excel文件(即.xlsx为后缀的文件).这里介绍一下excel数据的结构. 打开excel文件后生成一个workbo ...
- Python中xlrd操作excel单元格
学习目标 Python中xlrd操作excel单元格 学习内容 1.获取工作表 sheet=data.sheet_by_index(0) 2.返回单元格对象 sheet.cell(1,2) #返回第二 ...
- python 标准库 excel_Python 操作 Excel 的函数库
1. Python 操作 Excel 的函数库 我主要尝试了 3 种读写 Excel 的方法: 1> xlrd, xlwt, xlutils: 这三个库的好处是不需要其它支持,在任何操作系统上都 ...
- python提取内容保存excel_Python操作Excel之数据提取
最近发现excel数据量极大,并且通过简单的数据操作不能提取到我需要的数据,如果单独操作,数据量太大耗时太长. 想着通过简单的方式,并且快速提取数据,就想到了Python. python操作Excel ...
- 【Python基础】python使用openpyxl操作excel
1.openpyxl库介绍 openpyxl最好用的python操作excel表格库,不接受反驳: openpyxl官网链接:openpyxl官网 openpyxl只支持[.xlsx / .xlsm ...
- python创建excel_python创建Excel文件数据的方法
原博文 2018-12-07 18:41 − # -*- coding: utf-8 -*- # @Time : 2018/12/6 17:10 # @Author : suchao # @Disc: ...
- csv文件怎么转成excel_Python操作Excel文件(1):花式大师pyexcel
本文共2900余字,预计阅读时间12分钟,本文知乎连接:Python操作Excel文件(1):花式大师pyexcel,本文同步发布于silaoA的博客和微信公众号平台. 关注学习了解更多的Cygwin ...
最新文章
- iOS 10道细节面试题
- 设计模式 — 行为型模式 — 解释器模式
- 爱立信:用什么保持全球老大的地位?
- 基于FPGA的AES加解密读写控制系统,实现FLASH内部读写内容的销毁功能
- hdu1532(最大流裸题)
- Linq表达式、Lambda表达式你更喜欢哪个?
- mysql交叉连接后生成的记录总数_4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)_MySQL...
- Metro风格的Android界面应用
- 配置windows 2008 R2远程桌面授权,激活授权许可服务器
- servlet到mysql_在servlet中搜索代码到mysql?
- 【渗透】浅谈webshell隐藏
- 互联网晚报 | 12月2日 星期四 | 荣耀60系列正式发布;高通发布全新一代骁龙8移动平台;新东方在线布局教育智能硬件...
- Java 调用SAP PI PO 的Rest JSON接口
- 诗词大全给力版_亲测有效!小学生古诗词学习的教学攻略,附带教材推荐
- vr软件测试,如何进行VR可用性测试?
- 微信公众号开发之获得素材列表
- 再谈宋星博客的留言与seo培训联盟
- Sneaky Sasquatch Mac(捣蛋大脚怪搞怪冒险游戏)
- java socket / IM / Message / chat / liaotian / xmpp
- Paddle 点灯人 之 Tensor
热门文章
- Fig. BPF Performance Tools Book
- Redis:使用Redis的分布式锁
- OpenCV学习笔记:绘图指令(矩形、圆、线、文本标注)
- git新建账号_github 账号创建
- 没有为此文件配置应用程序上下文_如何在macOS中管理文件关联?
- Python String:一文彻底粉碎字符串
- 使用datepickerdialog提示is undefined错误_23.5 使用视图
- nodejs异常处理
- python 多进程 调用模块内函数_进程创建fork()和multiprocessing模块Process类
- 信息论霍夫曼编码c语言,Huffman 信息论与编码 - 下载 - 搜珍网