pandas: устройство, выборка и изменение таблиц

Загрузка CSV с явными типами и датами через read_csv

Содержание курса

Выбор нужных столбцов через usecols

Когда CSV-файл содержит десятки столбцов, а нужны только три — нет смысла загружать всё. Параметр usecols позволяет указать именно те столбцы, которые должны попасть в DataFrame.

Передавать можно список имён:

import pandas as pd

df = pd.read_csv('data/orders.csv', usecols=['id', 'date', 'amount'])
print(df.columns.tolist())
# ['id', 'date', 'amount']

Если имена столбцов в файле заранее неизвестны или нужно обратиться к ним по позиции, usecols принимает и список целых чисел:

# Взять первый, второй и третий столбцы (0-based)
df = pd.read_csv('data/orders.csv', usecols=[0, 1, 2])

Оба варианта дают одинаковый результат, если позиции соответствуют тем же столбцам.

Один момент, который сбивает с толку: порядок столбцов в результирующем DataFrame определяется не списком usecols, а порядком в самом файле. То есть если написать usecols=['amount', 'id', 'date'], в DataFrame они всё равно окажутся в том порядке, в котором идут в CSV — id, date, amount.

Практический смысл usecols не только в удобстве, но и в экономии памяти: pandas не читает и не хранит данные из пропущенных столбцов вообще. Для больших файлов с широкими таблицами это ощутимо.