2013-06-28 4 views
0

я имею сказать CSV файл, имени oldprice oldprofitPython- сортировка файлов CSV на основе два колонка

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 (третий столбец) в порядке убывания. Выход должен быть,

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?

+1

см. Http://stackoverflow.com/questions/2100353/sort-csv-by-column –

+0

Как далеко вы уже успели? Вы просто зациклились на сортировке или не знаете, как использовать модуль '' csv' '(http://docs.python.org/2/library/csv.html)? Или что-то другое? –

+0

Почему это дублированный вопрос, автор хочет сортировать в двух измерениях. Вопросы, которые используются в качестве источника, просто требуют одного измерения. – Tiina

ответ

0

Прочитайте каждую строку csv, как указано в списке. Теперь просто сортируйте сначала по старой цене. Получите список и отсортируйте его снова, используя имя. Используйте this answer to sort.

Свыше python 2.2, сортировка стабильна. Заказ из-за своего рода oldprice будет храниться в строках с таким же именем в сортировке с использованием имени.

+0

Эта ссылка также полезна: http://wiki.python.org/moin/HowTo/Sorting/ – Lohit

Смежные вопросы