首页 > 编程知识 正文

python怎么记录excel排序结果,python对excel的列数统计

时间:2023-05-05 16:36:00 阅读:285604 作者:1518

文章目录 前言1. 源代码2. 模块解析2.1 文件打开2.2 数据读取2.3 频率统计2.4 按频排序

前言

工作中想对 excel 进行一个简单的统计,历时三个小时终于搞定,效果如下:

1. 源代码

话不多说,直接上源码,可以直接食用,只需将目标文件设置为你需要统计的文件即可。

# -*- coding:utf-8 -*-import xlrdfrom collections import Counterinfos = []# 目标文件report = '2019.xlsx'info_file = xlrd.open_workbook(report)info_sheet = info_file.sheets()[1]row_count = info_sheet.nrowsfor row in range(0, row_count): # 5 为要统计的列序号,注意从 0 开始infos.append(info_sheet.cell_value(row, 5))def all_list(arr): result = {} for i in set(arr): result[i] = arr.count(i) return resultd = all_list(infos)d2 = sorted(d.items(), key = lambda x:x[1], reverse = True)print(d2) 2. 模块解析

接下来对每个模块进行解说。

2.1 文件打开 # 目标文件report = '2019.xlsx'info_file = xlrd.open_workbook(report)info_sheet = info_file.sheets()[1]

第一步自然要打开文件,这里需要引用 xlrd 库。

第一行定义目标文件,第二行打开,第三行选择表。注意:表的序号从 0 开始:

如图,“Sheet1” 对应的是 info_sheet = info_file.sheets()[0],
而 “sheet2” 对应 info_sheet = info_file.sheets()[1]。

2.2 数据读取 infos = []for row in range(0, row_count):infos.append(info_sheet.cell_value(row, 5))

定义一个 list ,用来存储读取的数据。

然后以列数为界限,利用 for 循环将每行你需要的列数据进行存储。

2.3 频率统计 def all_list(arr): result = {} for i in set(arr): result[i] = arr.count(i) return result

定义一个 dict ,将刚刚得到的 list 进行唯一处理, 然后将每个数据进行统计。这里 dict 的 key - value 分别对应 “ 数据 - 频率 ”。

2.4 按频排序 d2 = sorted(d.items(), key = lambda x:x[1], reverse = True)

将刚刚得到的 dict 按照 value 值的大小进行倒序排序。

正序排序只需将代码改为:d2 = sorted(d.items(), key = lambda x:x[1], reverse = True)。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。