IT评测·应用市场-qidao123.com技术社区

标题: 利用python实现对Excel文件中数据元组的自定义排序 [打印本页]

作者: 刘俊凯    时间: 2025-3-8 20:21
标题: 利用python实现对Excel文件中数据元组的自定义排序
问题引入:

假设你是一个浙江省水果超市的老板,统筹11个下辖地市的水果产量。假设11个地市生产的水果包括:苹果、香蕉和西瓜。你怎样快速得到某种水果产量突出(排名前几)的地市?产量落伍(排名后几)的地市?

问题分析:

得到某种水果产量排名前几和后几名的地市,本质是对Excel中的数据举行多次筛选,筛选的维度有:
1.水果种类;2.好排名;3.坏排名
现在假设一种环境:水果店老板想知道苹果产量排名前3的地市、香蕉产量排名前5的地市以及西瓜产量排名后4名的地市。
Excel本身可以通过多次筛选实现此功能,以苹果产量排名前3的地市为例:
可以通过筛选选项选择苹果产量最大的3项,以降序呈现

得到效果:绍兴、嘉兴和宁波是苹果产量排名前3的地市

若避免和繁琐的Excel筛选菜单打交道,可以将此功能利用Python实现。
完整代码

[code]import openpyxl


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

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


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

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

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

# 获取水果产量前三名和后三名的地市
top_cities = [city for city, _ in sorted_data[:top]]
bottom_cities = [city for city, _ in sorted_data[-bottom:]]



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

print("




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4