Python操作Excel之分组排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python操作Excel之分组排序相关的知识,希望对你有一定的参考价值。

缘由:需要做一个信息统计,但是手头上的源数据先得杂乱无章, 就利用Python写一个依照某些内容对EXCEL分组排序的小脚本吧。

功能:依照工作表中的不同部分对整张表进行分组排序

#!/usr/bin/env python
# --*-- coding:utf8 --*--
# Author: ZHangbb

import openpyxl
import time

t1 = time.time()

wb1 = openpyxl.load_workbook(r‘/home/wzr/音乐/leili.xlsx‘)
sh1 = wb1[‘诚利、科技‘]
# create a new sheet
wb1.create_sheet(‘诚利、科技-1‘)
sh2 = wb1[‘诚利、科技-1‘]
# department list
dept_list = []
# generate data of department
for cell in [col for col in sh1.columns][4]:
    dept_list.append(cell.value)
# get the unique value
dept_list = list(set(dept_list))
dept_list.sort()
dept_list.remove(‘部门‘)

# print department information
for dept in dept_list:
    print(dept, end="   ")

# write the table header to the first of the new sheet
for col in range(1, 15):
    sh2[chr(64+col)+‘1‘] = sh1[chr(64+col)+"1"].value

row_sh2 = 2
# group contents by dept & write to new sheet
for dept in dept_list:
    for i in range(2, sh1.max_row+1):
        if sh1[f"E{i}"].value == dept:
            col = 1
            for cell in [row for row in sh1.rows][i-1]:
                sh2[chr(64+col)+str(row_sh2)] = cell.value
                col += 1
            row_sh2 += 1 

# save data
wb1.save(‘/home/wzr/音乐/leili.xlsx‘)

t2 = time.time()
print(f"总共用时{int(t2-t1)}秒")

以上是关于Python操作Excel之分组排序的主要内容,如果未能解决你的问题,请参考以下文章

Pandas高级数据分析快速入门之数据筛选——分组排序筛选实践笔记

学不会的python之通过某几个关键字排序分组一个字典列表(列表中嵌套字典)

学不会的python之通过某几个关键字排序分组一个字典列表(列表中嵌套字典)

从入门到自闭之Python--MySQL数据库的单表操作

LINQ之路14:LINQ Operators之排序和分组(Ordering and Grouping)

Python开发Excel的操作之——读取