Чтение определённых колонок CSV без заголовков в Pandas
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Для чтения CSV-файла без заголовка в библиотеке Pandas, используйте функцию pd.read_csv('file.csv', header=None)
. Так, первая строка файла интерпретируется как запись данных, а не как заголовки столбцов. После этого можно присвоить названия столбцам следующим образом: df.columns = ['name1', 'name2', ...]
.
import pandas as pd
df = pd.read_csv('file.csv', header=None) # чтение файла без заголовков
df.columns = ['name1', 'name2', 'name3'] # присвоение имен столбцам
Выбор столбцов с помощью usecols
Если необходимо извлечь лишь определённые столбцы из большого файла, параметр usecols
будет крайне полезен:
df = pd.read_csv('large_file.csv', header=None, usecols=[3, 6]) # выбираем нужные столбцы
df.columns = ['fourth_column', 'seven_column'] # задание имен выбранным столбцам
Такой подход допускает извлечение данных только из 4-го и 7-го столбца, что ускоряет работу библиотеки pandas.
Работа с файлами, не являющимися форматом CSV
Для работы с TSV-файлами или файлами, которые используют иные разделители, применяйте read_table
— специализированный аналог read_csv
.
df = pd.read_table('data.tsv', header=None, sep='\t')
# Для файлов с отличающимися разделителями, например, с точкой с запятой:
df = pd.read_csv('data.csv', header=None, sep=';')
Не забудьте правильно установить параметр sep
, который должен соответствовать разделителю в вашем файле.
Добавление заголовков после чтения файла
Если необходимо добавить имена столбцам уже после загрузки данных, параметр names
окажется очень кстати:
headers = ['id', 'value1', 'value2']
df = pd.read_csv('no_header_data.csv', header=None, names=headers)
Применение параметра names
позволяет присвоить столбцам произвольные имена даже после прочтения данных.
Визуализация
Чтение таблиц без заголовков с помощью библиотеки pandas можно представить себе как выбор неназванной книги:
pd.read_csv('data.csv', header=None)
Это похоже на то, как если бы вы взяли книгу с пустой обложкой:
📖Обложка: [_______]
И наполнили её своими собственными неповторимыми историями:
После: [📖Глава1, 📖Глава2, 📖Глава3]
Каждая глава и страница будет наполнена уникальными и чистыми данными!
Избегание дублирования в заголовках
Представим, что вам нужно дать имя новорождённым близнецам. Использование одинаковых имён может вызвать путаницу, точно так же, как и дублирование названий столбцов:
# Не присваивайте одинаковые имена:
df.columns = ['id', 'data', 'data']
# Действуйте так:
df.columns = ['id', 'data1', 'data2']
Избавляясь от дубликатов, вы облегчаете работу с данными!
Индексация при отсутствии заголовков
Даже в отсутствии заголовков можно прекрасно систематизировать данные, используя их индексацию:
df = pd.read_csv('file.csv', header=None, index_col=0)
Установив значение параметра index_col
, вы мгновенно назначите определённый столбец в качестве индекса для DataFrame. Заголовки вовсе не всегда являются необходимыми!
Работа с смешанными и отсутствующими типами данных
Обработка данных иногда напоминает исследование неизвестной местности, где вас поджидают неполные и зашумлённые данные. Найти правильный путь помогут строгая типизация и обработка отсутствующих значений:
df = pd.read_csv('file.csv', header=None, dtype={0: 'int', 1: 'float'}, na_values=['NA'])
Явно указав dtype
, вы избегаете неожиданных преобразований типов, а na_values
помогают обрабатывать отсутствующие значения.
Полезные материалы
- pandas.read_csv — документация pandas 2.2.0 — Основательная документация, раскрывающая все нюансы
read_csv
. - python – Загрузка данных из txt с помощью pandas – Stack Overflow – Обсуждение между пользователями pandas на тему работы с CSV-файлами без заголовков.
- DataFrame — документация pandas 2.2.0 — Развернутый глоссарий по структурам данных DataFrame и их функционалу.
- Работа с текстовыми данными — документация pandas 2.2.0 – Раздел документации, где разъясняются методы обработки текстовых данных.
- pandas: Как читать и записывать файлы – Real Python — Детальное руководство по работе с
read_csv
и другими функциями ввода-вывода данных. - Введение в структуры данных — документация pandas 2.2.0 – Раздел, в котором рассказывают о создании DataFrame из различных источников данных.