Обработка CSV в Python: как пропустить строку с заголовками
Быстрый ответ
Для того чтобы пропустить строки с заголовками при чтении CSV-файла на Python, используйте следующий код:
import csv
with open('data.csv') as file:
reader = csv.reader(file)
next(reader) # Пропускаем заголовки
for row in reader:
print(row) # Обрабатываем только сами данные
Работа с заголовками по мере необходимости
Иногда требуется не только пропустить заголовки, но и использовать их в процессе обработки данных:
Сохранение заголовков для последующего использования
Сохраняйте заголовки отдельно, прежде чем приступить к обработке данных:
import csv
with open('data.csv') as file:
reader = csv.reader(file)
headers = next(reader) # Сохраняем заголовки
for row in reader:
# Обрабатываем данные
Работа с различными разделителями
CSV-файлы могут использовать разные символы в качестве разделителей, указывайте их при необходимости:
reader = csv.reader(file, delimiter=';') # Изменяем разделитель на точку с запятой
Перенос строк с заголовками в отдельный файл
Для более удобной работы с данными можно переместить заголовки в новый файл:
import csv
with open('data.csv') as infile, open('headers.csv', 'w') as outfile:
reader = csv.reader(infile)
writer = csv.writer(outfile)
writer.writerow(next(reader)) # Записываем заголовки в отдельный файл
for row in reader:
# Производим обработку данных
Визуализация
Представим CSV-файл в виде очереди на городских аттракционах:
Очередь на CSV-аттракционы
--------------
🎟 Контроль билетов (Заголовки)
🎢 Американские горки
🎠 Карусель
🚂 Поезд
🏰 Приключения в замке
Цель состоит в следующем: Python должен пропустить контроль билетов и сразу приступить к аттракционам:
import csv
with open('queue.csv', 'r') as file:
reader = csv.reader(file)
next(reader) # Пропускаем контроль билетов
for ride in reader: # Начинаем непосредственно с аттракционов
print(ride)
В результате этого Python сразу же погружается в "развлечения", минуя строки с заголовками!
Альтернативные способы пропуска заголовков
Вместо использования next()
, вы можете применить другие методы:
DictReader для обращения к данным по ключам заголовков
Вы можете обращаться к данным CSV-файла через ключи заголовков:
with open('data.csv') as file:
reader = csv.DictReader(file)
for row in reader:
print(row['Header_Name']) # Обращаемся к данным через ключи заголовков
csv.DictReader
автоматически пропускает строки с заголовками.
Пропуск строк с заголовками через срез
Вы можете пропустить строки с заголовками, преобразовав объект чтения в список и воспользовавшись срезом:
with open('data.csv') as file:
rows = list(csv.reader(file))[1:] # Используем срез для удаления первой строки (с заголовками)
for row in rows:
print(row)
Этот способ прост, но его следует использовать осторожно, поскольку он загружает весь файл в оперативную память.
Полезные материалы
- csv — Работа с CSV-файлами — официальная документация Python по работе с модулем
csv
. - pandas.read_csv — Работа с pandas.read_csv — Подробное руководство по использованию функции
read_csv
в библиотеке Pandas, включая параметрskiprows
. - Чтение и запись CSV-файлов – Real Python — Глубокое пособие по обработке CSV-файлов на Python от Real Python.
- Встроенные функции Python — next() — Официальная документация по функции
next()
. - Использование функции next() в Python — Обзор функции
next()
на сайте Programiz. - Обработка данных CSV в Python – GeeksforGeeks — Пояснения и детали обработки CSV-файлов на Python от GeeksforGeeks.
- Открытие файла в Python — Обзор основ работы с файлами на Python, включая CSV, от W3Schools.