Как из csv файла взять определённый столбец на python?

Нужно написать программу для нахождения максимального значения в столбце num в csv файле. Я написал такую программу
f = open('input','r', encoding='UTF-8').read().split('\n')
f = [i for i in f if len(i)!=0]
num = f[0].split(',').index("num")
ans = int(f[1].split(',')[num])
for string in f[2:]:
    number = int(string.split(',')[num])
    ans = number if number > ans else ans
print(ans)

Однако все тесты она не проходит. Где здесь ошибка.
P.S Есть ещё такая
import csv
f = open('input','r', encoding='UTF-8')
l = [int(i['num']) for i in csv.DictReader(f)]
print(max(l))

Но ошибка в тех же тестах.
  • Вопрос задан
  • 5124 просмотра
Пригласить эксперта
Ответы на вопрос 3
@gill-sama
Посмотрите в сторону библиотеки 'pandas' там и выбор макисмального и чтение по столбцам.
Ответ написан
@SkiBY
Нужно поделить сразу строки, например вот так, раз уж библиотека csv в деле

x = csv.reader(f, delimiter=';') - здесь нужно четко понимать, что у тебя делитель в файле

и потом уже по циклу "for row in x", row[0] - первый столбец. Создавай массив, ищи максимум и тд
Ответ написан
Комментировать
qlkvg
@qlkvg
python backend developer
1. Прочитаейте csv способом, который посоветовал SkiBY
2. Транспонируйте матрицу. Вот тут куча рецептов, проще всего и без лишних зависимостей - [list(i) for i in zip(*A)]
После транспонирования можно будет работать с столбцами напрямую по индексу. Соответственно, найти максимум можно будет просто - max(i[<индекс столбца>])
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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