我正在做一个小项目,但我一直在做这个项目。我使用 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 的降序最大数字,以及如何输出行号。
尝试以下 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()
返回列中的最大数字