Как сортировать список строк как числа?

Есть список студентов и их средний балл, каждого студента, нужно отсортировать список по среднему баллу, но, когда я сортирую числа - string, и получается, что 100 меньше, чем 20 и т. д.

file = open('Group1.csv','r')

next(file)

csv1=csv.reader(file,delimiter=',')

sort = sorted(csv1,key=operator.itemgetter(1))

for line in sort:
    print(line)

вот данные файла:

name,mark
Igor,74
Anton,75
Victor,66
A,100

Как сделать так, чтобы оно правильно сортировало и рядом с оценкой выводило и имя?


Ответы (2 шт):

Автор решения: Эникейщик

Конвертировать строку в число с помощью функции int:

key=int(operator.itemgetter(1))
→ Ссылка
Автор решения: hedgehogues

Попробуйте использовать pandas. Это классическая библиотека для работы с данными, особенно с таблицами.

import pandas as pd

df = pd.read_csv('Group1.csv', sep=',')
df = df.sort__values('mark')

df.head()

Установка pandas очень проста:

pip install pandas

После этого Вы сможете выполнить тот код, который я привёл. Плюсы pandas в том, что он умеет работать с большим количеством данных. Например, если в столбце есть числа и только они, pandas сразу преобразует их числам. Если же есть пропущенные значения или строки, тогда pandas преобразует их к самому широкому типу. Например, к строкам.

→ Ссылка