@tchainer

Вывести output в один столбец на python?

Ребята, помогите,пожалуйста. У меня есть csv, выглядящий так:
435;fd;4
435;a;4
435;b lfdsk;2
435;c lfdsk;4
435;d;14
435;dsf;3
435;ad;4
435;fd;4
Мне нужно использовать только 3-ий столбец (разделитель ясно ;) и посчитать сколько раз 1 элемент входил в столбец, т.е. в итоге должно получиться что-то такое (в 1-ом столбце число вхождений, в другом сам элемент):
1;3
13;7
2;8
etc

И отсортировать по убыванию числа вхождений.
Мой код не даёт 100% нужно результата,увы:

#!/usr/bin/env python
import csv
import collections

grades = collections.Counter()
with open('Ya.csv') as input_file:

for row in csv.reader(input_file, delimiter=';'):
grades[row[2]] += 1
a= grades.most_common()
print(a[0])
print(a[1])
print(a[2])
print(a[3])
input_file.close()

Выводит такое:
('4', 5)
('3', 1)
('2', 1)
('14', 1)

В командной строке это очень тривиальная задача, в питоне я просто запарился...
  • Вопрос задан
  • 1103 просмотра
Пригласить эксперта
Ответы на вопрос 1
@nirvimel
Если я правильно понял вопрос, то проблема только в форматированном выводе.
print '\n'.join(('%s;%s' % (key, value) for key, value in grades.most_common()))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы