У меня есть файл CSV, который имеет данные:Сортировка и добавить элементы списка на основе общего атрибута
California C1 A 1
. . . .
. . . .
. . . .
. . . .
так выглядит это, если смотреть в Python:
['California','C1','A',1]
['Hawaii','H1','B',2]
['California','C1','A',3]
['California','C2','A',4]
['Hawaii','H1','A',5]
['Hawaii','H1','A',6]
['California','C1','B',7]
['Hawaii','H2','B',8]
['California','C1',B',9]
['Hawaii','H2','A',10]
I хотел бы иметь выход как верхний 1 каждого списка, а именно:
['California','C1',B',16]
['California','C2','A',4]
['Hawaii','H1','A',11]
['Hawaii','H2','A',10]
в основном. Я хотел бы суммировать последнюю часть списка на основе первых 3 атрибутов списка, а затем вернуть верхнюю часть 1, учитывая три атрибута. Мой код выглядит следующим образом:
import collections
def top_1(list):
ranking = collections.Counter(list)
return [elem for elem, _ in sorted(counts.most_common(),key=lambda x:(‐x[1], x[0]))
[:1]]
csvReader =csv.reader(open('data.csv','rb'), delimiter=',', quotechar='"')
data = []
for i in range(int(line[3]):
data.append([line[0], line[1], line[2]))
print top_1(data)
но он не дает мне выход, который я ожидаю.
ваши данные действительно нравится в вашем входе или что анализируемые данные как список? – Kordi
Проверьте http://stackoverflow.com/help/mcve и попробуйте привести пример, который другие могут легко выполнить без необходимости переформатировать ваши данные и ваш код. – roadrunner66
Почему вы используете 'return' перед созданием * csvReader *? – styvane