Python读取xlsx文件的实现方法
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)

### Python读取xlsx文件的方法详解 #### 一、前言 在数据分析领域,Excel文件(尤其是.xlsx格式)是非常常见的数据存储格式。Python作为一种强大的编程语言,提供了多种库用于处理这类文件,例如`openpyxl`和`xlrd`。本文将详细介绍如何使用Python中的`openpyxl`库来读取.xlsx文件,并通过一个具体的示例来演示如何利用Python进行数据的分类统计。 #### 二、使用`openpyxl`读取xlsx文件 ##### 1. 安装`openpyxl` 在开始之前,确保已经安装了`openpyxl`库。可以通过pip命令进行安装: ```bash pip install openpyxl ``` ##### 2. 读取xlsx文件的基本步骤 - **加载工作簿**:使用`load_workbook`函数加载指定路径下的.xlsx文件。 - **选择工作表**:获取当前活跃的工作表或指定某个具体的工作表。 - **读取数据**:遍历行和列获取数据。 ##### 3. 示例代码解析 ```python from openpyxl import load_workbook # 加载工作簿 workbook = load_workbook('/tmp/test.xlsx') # 获取当前活跃的工作表 booksheet = workbook.active # 如果需要获取其他工作表 # sheets = workbook.sheetnames # booksheet = workbook[sheets[1]] # 获取sheet页的行数据 rows = booksheet.rows # 获取sheet页的列数据 columns = booksheet.columns # 迭代所有的行 i = 0 for row in rows: i += 1 line = [col.value for col in row] cell_data_1 = booksheet.cell(row=i, column=3).value cell_data_2 = booksheet.cell(row=i, column=4).value cell_data_3 = booksheet.cell(row=i, column=8).value cell_data_4 = booksheet.cell(row=i, column=18).value print(cell_data_1, cell_data_2, cell_data_3, cell_data_4) ``` - **加载工作簿**:通过`load_workbook`函数加载名为`test.xlsx`的文件。 - **获取工作表**:通过`.active`属性获取第一个工作表。 - **读取行和列**:使用`rows`和`columns`属性读取整个工作表的行和列。 - **访问单元格**:使用`cell`方法读取指定单元格的数据。 #### 三、实例:Python读取Excel数据并进行分类统计 ##### 1. 准备工作 - 确保已经安装`xlrd`库。 - 有一个包含通话记录的Excel文件`src.xls`。 ##### 2. 实现代码 ```python import xlrd import datetime # 打开Excel文件 info_file = xlrd.open_workbook('src.xls') # 通过索引顺序获取工作表 info_sheet = info_file.sheets()[0] # 获取行数 row_count = info_sheet.nrows # 初始化统计数据 time_all = datetime.timedelta(seconds=0) time_types = {} time_classes = {} time_numbers = {} # 遍历每行数据 for row in range(1, row_count): # 解析时间字符串 time_string = info_sheet.cell(row, 3).value time_s_sp = time_string.split(':') # 构造数据字典 data = { '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 += data['timespan'] # 按通话类型统计通话时间 if data['type'] in time_types: time_types[data['type']] += data['timespan'] else: time_types[data['type']] = data['timespan'] # 按通话地点统计通话时间 if data['gpscity'] in time_classes: time_classes[data['gpscity']] += data['timespan'] else: time_classes[data['gpscity']] = data['timespan'] # 按通话号码统计通话时间 if data['other_cellphone'] in time_numbers: time_numbers[data['other_cellphone']] += data['timespan'] else: time_numbers[data['other_cellphone']] = data['timespan'] # 输出统计结果 print("总通话时长:", time_all) print("按通话类型统计:") for key, value in time_types.items(): print(key, ":", value) print("按通话地点统计:") for key, value in time_classes.items(): print(key, ":", value) print("按通话号码统计:") for key, value in time_numbers.items(): print(key, ":", value) ``` ##### 3. 代码解释 - **读取Excel文件**:使用`xlrd.open_workbook`打开文件`src.xls`。 - **获取工作表**:通过索引获取第一个工作表。 - **处理每行数据**:遍历每行,解析时间字符串,构建数据字典。 - **统计数据**:统计总通话时间、按类型、按地点和按号码分类统计通话时间。 #### 四、总结 通过上述示例代码,我们可以看到`openpyxl`和`xlrd`库都为Python提供了强大的Excel文件读取能力。无论是简单的数据读取还是复杂的统计分析,这两个库都能提供有效的支持。掌握这些技能将有助于提升你在数据分析项目中的效率和准确性。























- 三&年2021-10-09没啥用 没啥用

- 粉丝: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于应用型人才培养的独立学院大学计算机基础课程改革的探索与实践.docx
- 图书管理系统的SQL-Server数据库设计.doc
- 大数据背景下政府统计的变革.docx
- plc的加热炉温度串级控制系统方案设计书.doc
- 后真相时代下新闻媒体的网络舆论引导.docx
- 财务管理在项目管理过程中的实施路径及方案分析.docx
- BAT互联网医疗布局分析.ppt
- 数据采集与监控.ppt
- 电力系统自动化技术安全管理的探析.doc
- 大数据背景下事业单位档案管理工作的分析.docx
- 简析大数据和区块链下企业财务会计和管理会计的融合.docx
- PLC自动门控制系统设计方案设计方案.doc
- 《通信原理》-樊昌信-曹丽娜-编著-第六版--第8章.ppt
- 论大数据时代背景下档案管理的思考.docx
- 中院计算机网络信息安全保密制.doc
- 基于计算思维的C语言程序设计教学探索.docx


