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?
解决方案
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.