1

I have a csv file say, name 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    

I have sorted name is ascending order and then oldprice (3rd column) in descending order. The output should be,

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 

How to generate it in python?

Jim
  • 22,354
  • 6
  • 52
  • 80
Joy Dutta
  • 13
  • 1
  • 5
  • 1
    see http://stackoverflow.com/questions/2100353/sort-csv-by-column – Seppo Erviälä Jun 28 '13 at 11:38
  • How far have you gotten already? Are you just stuck with sorting, or don't you know how to use the [`csv` module](http://docs.python.org/2/library/csv.html)? Or something else? – Tim Pietzcker Jun 28 '13 at 11:41
  • why this is a duplicate question, the author wants to sort in two dimension. The questions that is used as an origin just asks for one dimension. – Tiina May 16 '17 at 03:41

1 Answers1

1

Read each line of csv as set into a list. Now just sort first according to oldprice . Get the list and sort it again using name. Use this answer to sort.

Since above python 2.2, sort is stable. The order due to sort of oldprice will be maintained in rows having same name in sort using name.

Community
  • 1
  • 1
Lohit
  • 126
  • 8