抓取CSV列表中最大的20个数字的行号

问题描述 投票:0回答:1

我正在做一个小项目,但我一直在做这个项目。我使用 python 获取时间戳和热图数据的列表,并按行分隔它们(始终为 1-100)。我知道 max() 选项,但据我所知,谷歌和堆栈溢出都已耗尽精力,试图包含行号和多个最大数字降序。

这是我正在使用的 csv 示例:

0.00088006474088529383
0.00015301444453664169
0.0001578056486084342
4.8472783963609083e-05
0.00018440120509040085
7.766234473424159e-05

我理想地需要的是 csv 中 20 个最大数字行的列表,例如:

6
4
1
5
3
2

我不确定如何开始,但我已经尝试过:

with open('heatmap.csv', 'r') as heatnum:
 for line in heatnum:
     print(max(heatnum))

不幸的是,这只给了我单个最大数字,我不确定从哪里开始接收最多 20 的降序最大数字,以及如何输出行号。

python python-3.x max
1个回答
0
投票

尝试以下 3 种方法之一:

方法一: 在循环中,获取最大数字(与您已经制定的逻辑相同),然后从 CSV 文件中删除该数字并再次迭代。 (您可能想要复制 CSV,这样就不会丢失数据)执行此操作 20 次,直到获得 20 个值。如果需要,您可以将它们存储在临时列表中。

方法二: 对数据进行排序,然后只获取前 20 个或后 20 个(取决于排序顺序)

方法三: 使用

pandas
库将 CSV 加载为数据框,如下所示:

import pandas
df = pandas.load_csv("full path of your csv")

df 现在保存您的 csv 数据集,您不必担心丢失真实数据。现在您可以选择这里的方法 1 或 2 中的任何一个。

提示:

df.head(20)
将返回 tje 数据帧中的前 20 行,同时
df.tail(20)
将返回最后 20 行。 您可以使用
df["col name"].max()

返回列中的最大数字

© www.soinside.com 2019 - 2024. All rights reserved.