【问题标题】:Python- sorting csv file based on two column [duplicate]Python-基于两列对csv文件进行排序[重复]
【发布时间】:2013-06-26 04:09:07
【问题描述】:

我有一个 csv 文件说, 名称 oldprice oldprofit

k2  6.319044375 0.6469451082    
k3  9.2603346875    0.4639390435    
k4  10.6868384375   1.1287761798    
K1  4.1458078125    0.5129700421    
k5  7.2702040625    0.6632701035    
K1  8.025495625 0.7561548244    
k6  7.73398625  1.017231759 
k7  9.8022878125    0.562983695 
k8  5.44912125  0.8532092538    
k2  9.5360690625    0.5481493305    
K1  6.48153375  1.4176140292    
K1  6.66228125  1.0444456163
k9  7.5859665625    1.276779643 
K1  8.6394253125    0.6690271589    

我已将名称排序为升序,然后按降序排序 oldprice(第 3 列)。 输出应该是,

K1  6.48153375  1.4176140292        
K1  6.66228125  1.0444456163    
K1  8.025495625 0.7561548244    
K1  8.6394253125    0.6690271589        
K1  4.1458078125    0.5129700421    
k2  6.319044375 0.6469451082        
k2  9.5360690625    0.5481493305        
k3  9.2603346875    0.4639390435        
k4  10.6868384375   1.1287761798
k5  7.2702040625    0.6632701035    
k6  7.73398625  1.017231759

k7  9.8022878125    0.562983695

k8  5.44912125  0.8532092538    
k9  7.5859665625    1.276779643 

如何在python中生成?

【问题讨论】:

  • 你已经走了多远?你只是坚持排序,还是不知道如何使用csv module?还是别的什么?
  • 为什么这是一个重复的问题,作者想二维排序。用作起源的问题只要求一个维度。

标签: python csv


【解决方案1】:

将 csv 的每一行按设置读取到一个列表中。现在只需根据 oldprice 先排序。 获取列表并使用名称再次对其进行排序。 使用this answer to sort

自python 2.2以上以来,排序是稳定的。由于 oldprice 排序的顺序将在使用 name 的排序中保持在具有相同名称的行中。

【讨论】:

最近更新 更多