Python读取Excel文件并生成分析结果

笔者需要对存放在Excel里的很多媒资文件进行分析,这些节目的分辨率有高清、标清之分,高清的节目名称前面加上“HD-”,比如下面的“HD-护宝联盟第一季”,标清的则直接是节目名称,如“HD-护宝联盟第一季”,这些节目可能分别属于电视剧、电影、娱乐的栏目,每个节目有对应的时长(分钟数),然后按栏目放在不同的sheet里

需要实现的目标有:

1、统计高清节目的时长,这个在Excel里可以直接统计;

2、统计标清节目的时长,这个在Excel里可以直接统计;

3、统计高清、标清节目的重复率,这里要分析高清节目和标清节目差一个“HD-”的数量及时长,就无法在Excel里简单实现了,干脆写一个Python操作Excel文件的博文供大家参考,也可给自己留个笔记。

以下是代码部分,我在Win7+Pycharm+python3.6里调试通过:

__author__ = ‘Yue Qingxuan‘# -*- coding: utf-8 -*-

import sysimport xlrdimport datetime

def trans():    try:        workbook1 = xlrd.open_workbook(r‘E:\temp\节目数据.xlsx‘)  #打开Excel文件        #print(workbook1.sheet_by_index(0).nrows)        #print(workbook1.sheet_by_index(0).ncols)

for sheet in range(len(workbook1.sheets())):   #循环打开每个sheet            sdname=[]  #定义一个数组,存放标清节目的名称            sdtime=[]  #定义一个数组,存放标清节目的时长            hdname=[]  #定义一个数组,存放高清节目的名称            hdtime=[]  #定义一个数组,存放高清节目的时长            for row in range(workbook1.sheet_by_index(sheet).nrows):               # print(workbook1.sheet_by_index(sheet).cell(row,3).value.strip())                if (workbook1.sheet_by_index(sheet).cell(row,3).value.strip()==‘标清‘):                    sdname.append(workbook1.sheet_by_index(sheet).cell(row,0).value)      #将标清节目的名称存入数组                    sdtime.append(int(workbook1.sheet_by_index(sheet).cell(row,2).value)) #将标清节目的时长存入数组                elif (workbook1.sheet_by_index(sheet).cell(row,3).value.strip()==‘高清‘):                    hdname.append(workbook1.sheet_by_index(sheet).cell(row,0).value)   #将高清节目的名称存入数组                    hdtime.append(int(workbook1.sheet_by_index(sheet).cell(row,2).value))  #将高清节目的时长存入数组

repeated_time=0  #定义标清、高清节目的重复时长的计数器,并初始化为0            sdtimes=0         #定义标清节目的时长            hdtimes=0         #定义高清节目的时长            tmpcount=0        #定义标清、高清节目的重复次数的计数器,并初始化为0            for ii in range(len(sdname)):                for kk in range(len(hdname)):                    if sdname[ii] == hdname[kk].lstrip(‘HD-‘):  #判断标清节目和高清节目的名称差一个"HD-"后,是否相等                        repeated_time += hdtime[kk]                        tmpcount+=1                       # print(‘第{0}个:‘.format(tmpcount),‘标清名称:‘,sdname[ii],‘ 高清名称:‘,hdname[kk],‘ 标清时长:‘,sdtime[ii],‘高清时长‘,hdtime[kk])

for iii in range(len(sdname)):                sdtimes += sdtime[iii]   #存放标清节目的总时长

for jj in range(len(hdtime)):                hdtimes+=hdtime[jj]      #存放高清节目的总时长

print("\n---------------",workbook1.sheet_by_index(sheet).name,‘---------------------‘)            print(‘重复分钟数:‘,repeated_time," 重复小时数:",repeated_time/60,‘ 取整保留小数点一位:‘,round(repeated_time/60,1))            print(‘高清分钟数:‘,hdtimes," 高清小时数:",hdtimes/60,‘ 取整保留小数点一位‘,round(hdtimes/60,1))            print(‘标清分钟数:‘, sdtimes,‘ 标清小时数:‘,sdtimes/60,‘ 取整保留小数点一位:‘,round(sdtimes/60,1))    except:        print(sys.exc_info())

if __name__ == ‘__main__‘:    print("程序开始时间:", datetime.datetime.now())    trans()    print("程序结束时间:", datetime.datetime.now())

如下是程序运行的结果:

程序开始时间: 2018-12-08 16:04:13.083143

--------------- 电视剧 ---------------------
重复分钟数: 6776 重复小时数: 112.93333333333334 取整保留小数点一位: 112.9
高清分钟数: 6777 高清小时数: 112.95 取整保留小数点一位 113.0
标清分钟数: 9070 标清小时数: 151.16666666666666 取整保留小数点一位: 151.2

--------------- 电影 ---------------------
重复分钟数: 2371 重复小时数: 39.516666666666666 取整保留小数点一位: 39.5
高清分钟数: 2986 高清小时数: 49.766666666666666 取整保留小数点一位 49.8
标清分钟数: 2743 标清小时数: 45.71666666666667 取整保留小数点一位: 45.7

--------------- 娱乐 ---------------------
重复分钟数: 6630 重复小时数: 110.5 取整保留小数点一位: 110.5
高清分钟数: 6849 高清小时数: 114.15 取整保留小数点一位 114.2
标清分钟数: 7033 标清小时数: 117.21666666666667 取整保留小数点一位: 117.2
程序结束时间: 2018-12-08 16:04:13.258153



原文地址:https://www.cnblogs.com/laoyueblogs/p/10088057.html

时间: 2024-11-05 18:46:52

Python读取Excel文件并生成分析结果的相关文章

python读取excel文件(xrld模块)

Python读取excel文件 一.python  xlrd模块 安装 mac 下安装python  xlrd模块 http://www.crifan.com/python_read_excel_xls_file_xlrd/comment-page-1/ python setup.py install 在mac 下出现的错误是 http://stackoverflow.com/questions/18199853/error-could-not-create-library-python-2-7

python 读取 excel文件

python读取excel文件的链接都是从这里获取的: http://blog.csdn.net/longshen747/article/details/17194259 http://www.cnblogs.com/yanzhi123/archive/2012/04/16/2452214.html 上个示例的代码: import xml.etree.ElementTree as ETimport xlwtimport os path = "D:/Cai_Bishe/xml/"prin

Python 读取 excel 文件

现在大部分数据都是存储在excel中或直接调取数据库,作为刚刚自学Python的小白来说怎么读取文件还是比较懵的,现在对Python读取excel文件进行了一些整理: #coding=utf-8 #cmd中进行安装xlrd库 pip install xlrd import xlrd #文件路径,要用/而不是\ file_path = r'C:/Users/mingli.zhao/Desktop/七天.xlsx' #中文转码 #file_path = file_path.decode('utf-8

python 读取excel文件

1.用python读取csv文件: csv是逗号分隔符格式 一般我们用的execl生成的格式是xls和xlsx  直接重命名为csv的话会报错: Error: line contains NULL byte insun解决方案:出错原因是直接是把后缀为xls的execl文件重命名为csv的 正常的要是另存为csv文件 就不会报错了 譬如我们有这么个csv文件: #!/usr/bin/env python # -*- coding:utf-8 -*-   import csv with open(

C#读取excel文件,生成json

这段时间在做一个数据管理系统,需要读取excel表格,组装json,最终存入mongodb,这里记录一下解决思路. 需要做的准备工作: 1.安装AccessDatabaseEngine 下载地址:https://products.office.com/zh-cn/compare-all-microsoft-office-products?tab=1 有32bit和64bit两个版本,具体要安装哪个要看你的Office程序是32bit的还是64bit的.通常来讲,一般是选择与office程序相对应

python读取excel文件

一.xlrd的说明 xlrd是专门用来在python中读取excel文档的模块,使用前需要安装. 可以到这https://pypi.python.org/pypi/xlrd进行下载tar.gz文件,然后解压缩安装,在cmd命令窗口中切换到解压后的文件夹中,使用 python setup.py install 进行安装. 方法二. 使用pip进行安装 pip install xlrd 二.使用介绍 1导入模块 import xlrd 2 打开excel文件 data = xlrd.open_wor

python第三方库学习之xlrd读取Excel文件

因为经常会涉及到从Excel表中导数据,所以就学习了python的xlrd来读取excel中的数据. 1.xlrd的安装 xlrd是python的第三方库,所以是需要自己安装的,可以在python的官网http://pypi.python.org/pypi/xlrd下载该模块来安装,也可以通过其他手段,比如easy_install或者pip啥的,我已经安装好pip所以就用最懒的方式来安装了pip install xlrd来安装. 2.分析excel文件的层级对象 要读取excel的数据,就要了解

C# API: 生成和读取Excel文件

我们想为用户提供一些数据,考虑再三, 大家认为对于用户(人,而非机器)的可读性, Excel文件要好一些. 因为相比csv,xml等文件, Excel中我们可以运用自动筛选, 窗口锁定, 还可以控制背景颜色, 前景颜色, 字体, 网格等等... 业务逻辑并不复杂, 文件的内容和格式也比较固定,所以大家决定直接拿C#去创建这些文件. 于是一搜索,首先来到了这个链接:C# Excel Tutorial 里面包含了下面这些主题的代码示例, 示例很详细, 编译可直接运行. How to create E

python读取excel表格生成sql语句 第一版

由于单位设计数据库表·,都用sql.不知道什么原因不用 powerdesign或者ermaster工具,建表很痛苦  作为程序猿当然要想办法解决,用Python写一个程序解决 需要用到 xlrd linux下 sudo pip install xlrd 主要是适用于db2数据库 excel 表结构 其中 number是不正确的字段类型 不知道同事为啥这么设置.这里程序里有纠错,这个程序就是将sql语句拼好. __author__ = 'c3t' # coding:utf-8 import xlr