gpt4 book ai didi

python - dataframe .head() 的替代方案,尝试根据值打印排序字典并仅返回顶部指定结果

转载 作者:行者123 更新时间:2023-12-01 01:02:42 24 4
gpt4 key购买 nike

我有一个脚本,可以扫描文件夹中的所有文件扩展名,并将它们返回到按从大到小排序的数据框中

>> myscript.py --top 3

ext count
.py 20
.txt 15
.xls 5

但为了速度,我不想使用数据帧,而是使用它所构建的字典,因为它更快。是否可以对字典进行排序并让用户返回一定数量的值?

我的脚本在速度方面与 bash 脚本相当,但如果我不使用 Pandas,它会更快! pandas 的实际导入会减慢脚本的速度:/

最佳答案

是的,您可以使用 sorteddict 进行排序,但如果不进行显式转换,您将无法得到 dict,因为 字典本质上是无序的(除了它们可能在Python 3.6中遵循插入顺序,并且必须在Python >= 3.7中)。

示例:

from operator import itemgetter

d = {'.xls': 5,
'.py': 20,
'.txt': 15}

result = sorted(d.items(), key=itemgetter(1))

print(result)
print(dict(result))

输出:

[('.xls', 5), ('.txt', 15), ('.py', 20)]
{'.xls': 5, '.txt': 15, '.py': 20}

如果你愿意,说出前 2 个值,只需执行切片:

print(result[:2])
print(dict(result[:2]))

输出:

[('.py', 20), ('.txt', 15)]
{'.py': 20, '.txt': 15}

您还可以通过传递reversed=True来更改排序顺序。

关于python - dataframe .head() 的替代方案,尝试根据值打印排序字典并仅返回顶部指定结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55642582/

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