刘俊凯 发表于 2025-3-8 20:21:50

利用python实现对Excel文件中数据元组的自定义排序

问题引入:

假设你是一个浙江省水果超市的老板,统筹11个下辖地市的水果产量。假设11个地市生产的水果包括:苹果、香蕉和西瓜。你怎样快速得到某种水果产量突出(排名前几)的地市?产量落伍(排名后几)的地市?
https://i-blog.csdnimg.cn/direct/72a82be6cb164ea0b0e1b64b1bc74165.png
问题分析:

得到某种水果产量排名前几和后几名的地市,本质是对Excel中的数据举行多次筛选,筛选的维度有:
1.水果种类;2.好排名;3.坏排名
现在假设一种环境:水果店老板想知道苹果产量排名前3的地市、香蕉产量排名前5的地市以及西瓜产量排名后4名的地市。
Excel本身可以通过多次筛选实现此功能,以苹果产量排名前3的地市为例:
可以通过筛选选项选择苹果产量最大的3项,以降序呈现
https://i-blog.csdnimg.cn/direct/30ac8083aee74f05ac604fe8e8b9fae2.png
得到效果:绍兴、嘉兴和宁波是苹果产量排名前3的地市
https://i-blog.csdnimg.cn/direct/95a6a8d7cf494e16a93077d4322a917f.png
若避免和繁琐的Excel筛选菜单打交道,可以将此功能利用Python实现。
完整代码

import openpyxl


file_path = "data.xlsx"
sheet_name = "Sheet2"

# 加载工作簿和工作表
workbook = openpyxl.load_workbook(file_path)
sheet = workbook


fruit_id = 1
top = 3
bottom = 3
#data存储[地市-水果产量]的组合
data = []

# 读取数据
for row in sheet.iter_rows(min_row=2, values_only=True):# 假设第一行是标题行,从第二行开始读取
    city = row
    development = row
    data.append((city, development))

# 将数据按水果产量降序排序
sorted_data = sorted(data, key=lambda x: x, reverse=True)

# 获取水果产量前三名和后三名的地市
top_cities = ]
bottom_cities = ]



print("【本日浙江省分地市水果产量情况】", end = '')
print(sheet.cell(row = 1,column = fruit_id + 1).value)

print("
页: [1]
查看完整版本: 利用python实现对Excel文件中数据元组的自定义排序