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读excel并写入_Python读取Excel文件并写入数据库
好方法最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而 ...
- python读yaml的库_Python读取YAML文件过程详解
这篇文章主要介绍了Python读取YAML文件过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python读取方法: import yaml ...
- python读excel并写入_python 读取excel文件并写入json
excel内容: 代码: import xlrd import json import operator def read_xlsx(filename): # 打开excel文件 data1 = xl ...
- python 读excel中的sheet_python读取excel文件中所有sheet表格
sales: store: """ (1)用load_workbook函数打开excel文件,返回一个工作簿对象 (2)用工作簿对象获取所有的sheet (3)第一个fo ...
- python读txt很大_Python读写txt文件
python读写txt文件 准备原始txt数据 3.14159265358979323846264338327950288419716939937510582097494459230781640628 ...
- python运行微软图标代码_Python读取xlsx数据生成图标代码实例
运行结果: 程序代码如下: #将excel中的数据进行读取分析 import openpyxl import numpy as np import math import matplotlib.pyp ...
- python读excel成数组_python读取excel数据 python怎么从excel中读取数据?
python怎么从excel中读取数据?分母那么浩瀚,分子那么微弱.唯一就等于没有. #导入包 import xlrd #设置路径 path='C:\\Users\\jyjh\\Desktop\\da ...
- python读取nc数据_python读取nc文件
nc文件的处理方式比较多,可以用MATLAB.JAVA.C.python或者其他的语言.我这两天折腾用python读取nc文件,查阅很多资料,左拼右凑的终于读出来了. 1.安装Anaconda 1)A ...
- python csv文件参数化_Python 读取csv文件的某一列数据,并定义两个pattern,确定变化区间...
Python 读取csv文件的某一列数据,并定义两个pattern,[-1, 1, 1] 和 [1, -1, -1]可以确定不同的变化区间 抓取股票数据,确定股票的变化区间. Date 3D10 20 ...
- python处理mat数据_python读取.mat文件的数据及实例代码
首先导入scipy的包 from scipy.io import loadmat 然后读取 m = loadmat("F:/__identity/activity/论文/data/D001. ...
最新文章
- Python-常用字符串转换实例
- 仿百度GIF验证码 GIFEncoder 跳动验证码 随机背景色、颜色、字体、子大小、偏移、干扰线等...
- Win7部署基础知识(7):使用Imagex捕获和安装映像
- 对多态变形引擎背后方法的概述
- java 监听map的数据_使用监听器:定时清除map缓存的key value .
- java内部类为什么会持有外部类的引用_为什么内部类持有外部类的引?
- json schema如何约束为小数_如何使用jsonschema进行接口响应断言
- 车载wince系统刷界面ui_UI入门秘笈,你想知道吗?
- JAVA和tomcat 环境变量配置
- Linux/Unix文件系统索引节点浅析
- 打开桌面计算机投屏到扩展屏,无线投屏新玩法——Windows电脑扩展屏幕投屏
- 史上最全的MathCAD安装教程
- 链接Maya和UE4实现real-time预览——Connecting Maya to Unreal with Live Link
- Altium designer--LM317/LM337封装图
- Costech A17T23SWB MTo
- du_Welch_cov_burg 功率谱估计 matlab
- 2023.3.5英语单词学习笔记
- html自动验证邮件地址格式,JavaScript表单验证和邮箱格式验证的方法
- 新唐NUC972 ARM9 内置DDR2 最大128MB 11路UART 电表 集中器 充电桩
- BZOJ - 4810 [Ynoi2017]由乃的玉米田 莫队算法 + bitset 大暴力
热门文章
- 机器学习实战 | 综合项目-电商销量预估进阶方案
- comsol matlab script,comsol script
- CAD看图软件的快速搜索功能怎么用?
- Error: DPI-1047: Cannot locate a 64-bit Oracle Client library: “问题
- DelayQueue实现原理及应用场景分析
- 测量string变量长度函数_测量字符串长度的函数
- python3 pdf转图片_Python 将pdf转成图片的方法
- 计算机网络共享无访问权限,Win7局域网访问WIN7共享文件夹提示无访问权限的多种解决方法...
- Apex-逃离塔科夫机器码彻底解决(年度最新讲解可观看)
- 交流电路有效值、最大值、平均值