python导入xlsx文件-Python读取xlsx文件的实现方法
脚本如下:
from openpyxl import load_workbook
workbook = load_workbook(u'/tmp/test.xlsx') #找到需要xlsx文件的位置
booksheet = workbook.active #获取当前活跃的sheet,默认是第一个sheet
#如果想获取别的sheet页采取下面这种方式,先获取所有sheet页名,在通过指定那一页。
# sheets = workbook.get_sheet_names() # 从名称获取sheet
# booksheet = workbook.get_sheet_by_name(sheets[0])
#获取sheet页的行数据
rows = booksheet.rows
#获取sheet页的列数据
columns = booksheet.columns
i = 0
# 迭代所有的行
for row in rows:
i = i + 1
line = [col.value for col in row]
cell_data_1 = booksheet.cell(row=i, column=3).value #获取第i行1 列的数据
cell_data_2 = booksheet.cell(row=i, column=4).value #获取第i行 2 列的数据
cell_data_3 = booksheet.cell(row=i, column=8).value #获取第i行 3 列的数据
cell_data_4 = booksheet.cell(row=i, column=18).value #获取第i行 4 列的数据
print (cell_data_1, cell_data_2, cell_data_3, cell_data_4)
实例:python读取excel数据做分类统计
某excel中记录了某个人的通话记录,下面程序将按照通话地点,通话类型等统计通话时间
# -*- coding:utf-8 -*-
import xlrd
import datetime
infos=[]
info_file=xlrd.open_workbook('src.xls')#打开excel文件
info_sheet=info_file.sheets()[0]#通过索引顺序获取工作表
row_count=info_sheet.nrows#获取行数,列数ncols
for row in range(1,row_count):
time_string=info_sheet.cell(row,3).value
time_s_sp=time_string.split(':')
infos.append(#该数组里放了row_count个字典
{
'type':info_sheet.cell(row,2).value,#获取单元格,通话类型,主叫被叫
'other_cellphone':info_sheet.cell(row,0).value,#对方号码,
'timespan':datetime.timedelta(seconds=int(time_s_sp[2]),minutes=int(time_s_sp[1]),hours=int(time_s_sp[0])),
'gpscity':info_sheet.cell(row,5).value#通话是本地还是外地
}
)
time_all=datetime.timedelta(seconds=0)#初始化
time_types={}
time_classes={}
time_numbers={}
for infor in infos:#取出该数组里的字典
time_all +=infor['timespan']#求总通话次数
infor_type=infor['type']
if infor_type in time_types:
time_types[infor_type]+=infor['timespan']
else:
time_types[infor_type]=infor['timespan']#按通话类型统计通话时间
infor_class=infor['gpscity']
if infor_class in time_classes:
time_classes[infor_class]+=infor['timespan']
else:
time_classes[infor_class]=infor['timespan']#这里相当于先分类赋值再++,按归属地统计通话时间
infor_number=infor['other_cellphone']
if infor_number in time_numbers:
time_numbers[infor_number]+=infor['timespan']
else:
time_numbers[infor_number]=infor['timespan']#根据号码统计通话时间
print '总通话时间:%s' % time_all
print '总通话方式分类'
for k,v in time_types.items():
print k.encode('utf-8'),v
print '通话类型分类:'
for k,v in time_classes.items():
print k.encode('utf-8'),v
print '对方号码分类:'
for k,v in time_numbers.items():
print k,v
再优化下代码
# -*- coding:utf-8 -*-
import xlrd
from datetime import timedelta
def read_excel(file_excel):#读excel并将需要的数据分类放在数组里
infos=[]
info_file=xlrd.open_workbook(file_excel)
info_sheet=info_file.sheets()[0]
row_count=info_sheet.nrows
for row in range(1,row_count):
time_string=info_sheet.cell(row,3).value
time_s_sp=time_string.split(':')
infos.append(
{
'type':info_sheet.cell(row,2).value,
'other_cellphone':info_sheet.cell(row,0).value,
'timespan':timedelta(seconds=int(time_s_sp[2]),minutes=int(time_s_sp[1]),hours=int(time_s_sp[0])),
'gpscity':info_sheet.cell(row,5).value
}
)
return infos
def count_cell(list_dirs,infotype):#统计总通话及分类统计结果,存在字典里
result_dir={}
time_all=timedelta(seconds=0)
for list_dir in list_dirs:
time_all +=list_dir['timespan']
info_type = list_dir[infotype]
if info_type not in result_dir:
result_dir[info_type]=list_dir['timespan']
else:
result_dir[info_type]+=list_dir['timespan']
return time_all,result_dir
def print_result(result_dir):#打印数据
for k,v in result_dir.items():
print k.encode('utf-8'),v
if __name__=="__main__":
list_dirs=read_excel('src.xls')
time_all,result_type=count_cell(list_dirs,'type')
result_cell=count_cell(list_dirs,'other_cellphone')
result_gpscity = count_cell(list_dirs, 'gpscity')
print '总通话时间:%s' % time_all
print '按照通话类型分类:'
print_result(result_type)
print '按照号码分类:'
print_result(result_cell[1])
print '按照归属地分类:'
print_result(result_gpscity[1])
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
python导入xlsx文件-Python读取xlsx文件的实现方法相关推荐
- python 读取大文件_Python读取大文件
1. 前言 前几天在做日志分析系统,需要处理几十G的文件,我尝试用原来的for line in open(filepath).readlines()处理,但停顿好久也没变化,可见占用不小的内存.在网上 ...
- Python 将数据写入pkl文件,读取pkl文件
Python 将数据写入pkl文件,读取pkl文件 写入pkl文件 data = {"name": ["李明", "胡莉"]} with o ...
- 【Python基础】生成.pkl文件,读取.pkl文件的内容
保存 def save_dict(data, name):with open(name + '.pkl', 'wb') as f:pickle.dump(data, f, pickle.HIGHEST ...
- android读取assets中的html文件,android读取assets文件.htm
android读取assets文件 android读取assets文件 style='FONT-SIZE: 14px; FONT-FAMILY: verdana, "ms song" ...
- java+读取source资源_如何从JavaJAR文件中读取资源文件?
如何从JavaJAR文件中读取资源文件? 我试图从一个单独的JAR文件中访问一个XML文件,这个JAR是作为桌面应用程序运行的.我可以获得我需要的文件的URL,但是当我将它传递给FileReader( ...
- C#不用ArcEngine,生成Shp文件(五)---------读取.shx文件和生成.shx文件
这一篇来写一下.shx文件的读取跟生成.测试数据下载地址为:http://download.csdn.net/detail/gis0911178/9650967 在第一篇时候有介绍. 索引文件(.sh ...
- 第四章:数据存储-csv文件处理-读取csv文件的两种方式
直接学习:https://edu.csdn.net/course/play/24756/280718 csv文件处理-读取csv文件的两种方式: # 这种方式读取到的每一条数据是个列表,所以需要通过下 ...
- Python读取excel文件可读取xlsx格式和xls格式可直接读取超链接,读出为字典格式(列表套字典),处理合并单元格的问题
直接上代码:(代码有注释,代码下方有解释) 1.可读取excel中的xlsx格式文件 2.可读取excel中的xls格式文件 3.可直接读取网页上的excel的超链接 4.解决有列合并的情况以及行合并 ...
- python生成表格文件_python 读取excel文件生成sql文件实例详解
python 读取excel文件生成sql文件实例详解 学了python这么久,总算是在工作中用到一次.这次是为了从excel文件中读取数据然后写入到数据库中.这个逻辑用java来写的话就太重了,所以 ...
- 【Python 2.7】xlrd读取Excel文件
这篇博文参考于<Python 数据处理> 读取Excel文件需要用到xlrd模块,模块下载地址:xlrd下载地址 本博文中Excel文件下载地址:SOWC 2014 Stat Tables ...
最新文章
- python使用textwrap包在已经生成的长字符串中嵌入回车符实战
- 在Ubuntu中使用远程桌面
- python好学-html和Python哪个好学?
- Win11笔记本电源计划怎么设置 Win11设置电源计划为高性能的方法
- 浅谈对机器学习方法(决策树,SVM,knn最近邻,随机森林,朴素贝叶斯、逻辑回归)的理解以及用sklearn工具实现文本分类和回归方法...
- 云服务器一般选什么系统,云服务器一般选择什么系统好
- SAP License:2021年最新FICO面试答案
- 商城小程序、实例原型设计、电商app、积分商城、领券中心、会员中心、每日签到、小程序电商、优惠券、移动端电商、Axure原型、rp原型、产品原型、积分、会员卡
- 如何从低端面畜到高端面霸
- Android跳转到拨打电话的页面
- QT+ 状态栏+核心控件+浮动窗口
- (转)RemapKey等:小巧实用的键盘映射工具
- python刷leetcode_GitHub - eppoha/leetcode-python: 利用python分类刷leetcode题目
- linux 关机 日志记录,linux查看开关机记录
- 信息学奥赛一本通T1436-数列分段II (二分)
- IB心理学社会文化介绍
- P2184 贪婪大陆 线段树(优化:区间修改变为单点修改)
- 钢琴作品常用体裁名称及曲式
- lightning接口linux驱动,iPhone 8惊喜曝光:Lightning接口换USB Type-C
- 记录:mac和win共享磁盘(同一局域网)
热门文章
- POJ3270 Cow Sorting ——置换群
- UHF RFID编码之TPP编码
- mysql_08_子查询
- 【Java 线程的深入研究3】最简单实例说明wait、notify、notifyAll的使用方法
- 必须熟悉的vim快捷键操作
- VS2013上利用InstallShield2013LimitedEdition/C#生成安装包
- PHP自动加载__autoload的工作机制
- 黑马程序员 oc对象的方法成员变量
- 软件架构设计 温昱著 - 读书笔记
- C#中的String和string有什么区别?还有ref关键字怎么用?