使用Python对两列进行数值排序,但顺序不同

2024-06-10 20:49:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须根据两列对多列文件进行排序。两列都有浮点数,第一个排序应该从低到高,第二个从高到低。以下是示例文件:

A        B        C        D
AK       0.01     200.8    NY
DK       0.90     50.5     PHL
AB       0.0002   750.04   Port
GA       0.076    340.00   NY

所以,我必须先在B列按从低到高的顺序排序,然后在C列按从高到低的顺序排序。我的代码花了很多时间,使我的笔记本电脑无响应,我认为不应该是这样。此外,我不知道如何按“反向”即从高到低对B列进行排序。代码如下:

^{pr2}$

当B列从高到低排序时,如何对这两列进行排序?如果我有多个文件,每个文件有25000行*50列,那么最快的方法是什么?在

非常感谢你的帮助。在

-阿克-


Tags: 文件代码示例ab排序顺序port时间
1条回答
网友
1楼 · 发布于 2024-06-10 20:49:27

只需返回负数:

res_list.sort(key=lambda x: (float(x[1]), -float(x[2])))

这将反转B排序顺序,但请注意,数据是按列A首先排序的。在

请注意,您可以使用sorted()函数将排序与代码中的前一行相结合:

^{pr2}$

相关问题 更多 >