gpt4 book ai didi

python - 从 Excel 获取数据并使用 Python 3.6 对其进行排序的最佳方法

转载 作者:行者123 更新时间:2023-11-30 22:10:25 25 4
gpt4 key购买 nike

我需要一些重大帮助,因为我对 Python 比较陌生。我需要执行一项任务,从 Excel 读取数据,然后让我按降序对其进行排序。我最初开始努力将其放入字典中,因为 Excel 文件有一个标题行,然后是数千行,其中包含数据。我知道字典本身不是“可排序的”,但我认为考虑到我的需要,字典将是最好的方法。然而,我想知道数据框是否可行,但需要任何和所有指导,因为我正在努力弄清楚这一点。

我需要获取每个县份额最大的3种商品,包括商品名称。例如,对于第一行林德县,我希望返回以下内容 - Jade 米 - 19.52,牛 - 13.68,草莓 - 12.31。也可能是这样的: Jade 米:19.52,牛:13.68,草莓:12.31。但是,我需要按每种商品的值对数据进行排序。

我在网上找到了以下代码,并用它来将 Excel 数据读取到由字典组成的列表结构中,但我不确定这是否是最好的方法。

import xlrd
from xlrd import open_workbook
book = open_workbook('DictionaryProject.xlsx')
sheet = book.sheet_by_name('Sheet1')
keys = [sheet.cell(0, col_index).value for col_index in range(sheet.ncols)]
dict_list =[]

for row_index in range(1, sheet.nrows):
d= {keys[col_index]: sheet.cell(row_index, col_index).value
for col_index in range(sheet.ncols)}
dict_list.append(d)

print(dict_list)

This is the structure of the data

最佳答案

您可以使用pandas来解析数据,然后只用纯Python来显示您想要的内容。

df = pd.read_excel('filename.xlsx')
d = df.set_index('county').to_dict('index')

例如,对于数据框

    county    cattle    strawberry  corn
0 CountyA 10 30 1
1 CountyB 2 2 2
2 CountyC 50 15 3

你会得到

{'CountyA': {'cattle': 10, 'strawberry': 30, 'corn': 1},
'CountyB': {'cattle': 2, 'strawberry': 2, 'corn': 2},
'CountyC': {'cattle': 50, 'strawberry': 15, 'corn': 3}}

例如,您可以这样做

for k,v in d.items():
i = sorted(v.items(), key=lambda x: x[1], reverse=True)
print(k, ', '.join(['{}: {}'.format(com, value) for com, value in i]))

您还可以按照下面 @jpp 的评论使用 f-strings

print(k, ', '.join([f'{com}: {value}' for com, value in i]))

它将输出

CountyA strawberry: 30, cattle: 10, corn: 1
CountyB cattle: 2, strawberry: 2, corn: 2
CountyC cattle: 50, strawberry: 15, corn: 3

关于python - 从 Excel 获取数据并使用 Python 3.6 对其进行排序的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51689114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com