Нашли ошибку?
Скачать чистый
урок 1 из 5≈ 15 минупражнения: 0 из 4

Первая таблица

Загрузить CSV-файл в pandas и оглядеться — первые и последние строки, размер таблицы, названия столбцов.

Python запустится при первом выполнении

pandas — библиотека Python для работы с таблицами: загрузить выгрузку из CSV или Excel, выбрать нужные строки, посчитать итоги по группам, соединить несколько таблиц. Если вы работали в Excel, многое покажется знакомым — только вместо щелчков мышью строки кода, которые можно повторить на новых данных.

Весь курс мы будем разбирать данные вымышленного интернет-магазина «Кофейная лавка» за 2025 год: зерновой кофе, чай, сладости, посуда. Файл data/shop_orders.csv уже лежит рядом с уроком. Каждая его строка — одна позиция заказа: какой товар, по какой цене и сколько штук купили, в каком городе и через какой канал.

Загрузка

pandas подключают под коротким именем pd, а таблицу из файла читает функция pd.read_csv:

[ ]Читаем CSV в таблицу
import pandas as pd

orders = pd.read_csv("data/shop_orders.csv")
orders
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
order_id date customer_id city channel category product price quantity
0 10001 2025-01-01 C095 Москва маркетплейс Аксессуары Кофемолка ручная 3200 2
1 10001 2025-01-01 C095 Москва маркетплейс Чай Травяной сбор 50 г 260 1
2 10002 2025-01-01 C059 Москва приложение Сладости Шоколад горький 180 1
3 10002 2025-01-01 C059 Москва приложение Чай Чёрный чай 100 г 350 1
4 10003 2025-01-01 C203 Казань сайт Кофе Эфиопия 250 г 790 1
... ... ... ... ... ... ... ... ... ...
2443 11573 2025-12-31 C196 Казань приложение Кофе Эфиопия 250 г 790 3
2444 11574 2025-12-31 C067 Москва сайт Сладости Печенье овсяное 150 1
2445 11575 2025-12-31 C057 Новосибирск маркетплейс Сладости Печенье овсяное 150 2
2446 11575 2025-12-31 C057 Новосибирск маркетплейс Аксессуары Фильтры бумажные 240 1
2447 11576 2025-12-31 C158 Казань приложение Сладости Зефир 210 2

2448 rows × 9 columns

CSV (comma-separated values, «значения через запятую») — простой текстовый формат таблиц: одна строка файла — одна строка таблицы, значения разделены запятыми, в первой строке — названия столбцов. read_csv возвращает таблицу — объект DataFrame («датафрейм»). У неё есть столбцы с названиями и строки, а слева — индекс (index): подписи строк, пока это просто номера 0, 1, 2… Строк много, поэтому показаны только первые и последние, а внизу — размер таблицы.

Если путь к файлу неверный, read_csv сообщит об этом ошибкой:

[ ]Файла по такому пути нетошибка: FileNotFoundError
pd.read_csv("shop_orders.csv")
Ошибкасохранённый · нажмите «Выполнить», чтобы получить свой
FileNotFoundError: [Errno 44] No such file or directory: 'shop_orders.csv'

Первые и последние строки

На большую таблицу целиком смотреть неудобно: обычно начинают с нескольких строк сверху. Их показывает метод head:

[ ]Первые пять строк
orders.head()
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
order_id date customer_id city channel category product price quantity
0 10001 2025-01-01 C095 Москва маркетплейс Аксессуары Кофемолка ручная 3200 2
1 10001 2025-01-01 C095 Москва маркетплейс Чай Травяной сбор 50 г 260 1
2 10002 2025-01-01 C059 Москва приложение Сладости Шоколад горький 180 1
3 10002 2025-01-01 C059 Москва приложение Чай Чёрный чай 100 г 350 1
4 10003 2025-01-01 C203 Казань сайт Кофе Эфиопия 250 г 790 1

Без аргумента head возвращает 5 строк, нужное число пишут в скобках: orders.head(10). Последние строки показывает tail:

[ ]Последние три строки
orders.tail(3)
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
order_id date customer_id city channel category product price quantity
2445 11575 2025-12-31 C057 Новосибирск маркетплейс Сладости Печенье овсяное 150 2
2446 11575 2025-12-31 C057 Новосибирск маркетплейс Аксессуары Фильтры бумажные 240 1
2447 11576 2025-12-31 C158 Казань приложение Сладости Зефир 210 2

Что в столбцах: date — дата покупки, customer_id — код покупателя, city — город доставки, channel — где оформлен заказ (сайт, приложение или маркетплейс), category и product — категория и товар, price — цена за штуку в рублях, quantity — сколько штук. Один заказ (order_id) может занимать несколько строк — по строке на каждый товар в нём.

[ ]Упражнение 1Три первые строки решено

Сохраните в переменную top3 первые три строки таблицы orders.

top3 = ...

head — это метод: действие, которое таблица умеет выполнять. Метод вызывают скобками, даже когда аргументов нет. Если скобки забыть, Python ничего не выполнит, а покажет сам метод:

[ ]head без скобок
orders.head
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
<bound method NDFrame.head of       order_id        date customer_id         city      channel    category  \
0        10001  2025-01-01        C095       Москва  маркетплейс  Аксессуары
1        10001  2025-01-01        C095       Москва  маркетплейс         Чай
2        10002  2025-01-01        C059       Москва   приложение    Сладости
3        10002  2025-01-01        C059       Москва   приложение         Чай
4        10003  2025-01-01        C203       Казань         сайт        Кофе
...        ...         ...         ...          ...          ...         ...
2443     11573  2025-12-31        C196       Казань   приложение        Кофе
2444     11574  2025-12-31        C067       Москва         сайт    Сладости
2445     11575  2025-12-31        C057  Новосибирск  маркетплейс    Сладости
2446     11575  2025-12-31        C057  Новосибирск  маркетплейс  Аксессуары
2447     11576  2025-12-31        C158       Казань   приложение    Сладости

                 product  price  quantity
0       Кофемолка ручная   3200         2
1     Травяной сбор 50 г    260         1
2        Шоколад горький    180         1
3       Чёрный чай 100 г    350         1
4          Эфиопия 250 г    790         1
...                  ...    ...       ...
2443       Эфиопия 250 г    790         3
2444     Печенье овсяное    150         1
2445     Печенье овсяное    150         2
2446    Фильтры бумажные    240         1
2447               Зефир    210         2

[2448 rows x 9 columns]>

Размер и столбцы

Сколько в таблице строк и столбцов, показывает shape. Это не метод, а атрибут — свойство таблицы, которое уже посчитано и просто хранится. Скобки у атрибута не пишут:

[ ]Сколько строк и столбцов
orders.shape
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
(2448, 9)

shape — кортеж (tuple) из двух чисел: сначала строки, потом столбцы. Число строк можно достать индексом, как из списка, — orders.shape[0]. То же число возвращает len(orders):

[ ]Число строк двумя способами
print(orders.shape[0])
print(len(orders))
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
2448
2448
Вопрос

Первое число в orders.shape — 2448. Что оно значит?

[ ]Упражнение 2Размер таблицы решено

Сохраните число строк таблицы orders в n_rows, а число столбцов — в n_cols.

n_rows = ...
n_cols = ...

Названия столбцов хранит атрибут columns:

[ ]Названия столбцов
orders.columns
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
Index(['order_id', 'date', 'customer_id', 'city', 'channel', 'category',
       'product', 'price', 'quantity'],
      dtype='str')

Это не список, а объект pandas Index — набор подписей. В конце указан тип значений, dtype='str': названия — строки. Когда нужен обычный список Python, columns передают в list(...).

[ ]Упражнение 3Список столбцов решено

Сохраните в names обычный список Python (list) с названиями столбцов таблицы orders — по порядку.

names = ...

Прочитать только начало файла

У read_csv много параметров — они описаны в справочнике. Один пригодится сразу: nrows — сколько строк прочитать. Он выручает, когда файл огромный, а посмотреть хочется только начало:

[ ]Только первые 4 строки файла
pd.read_csv("data/shop_orders.csv", nrows=4)
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
order_id date customer_id city channel category product price quantity
0 10001 2025-01-01 C095 Москва маркетплейс Аксессуары Кофемолка ручная 3200 2
1 10001 2025-01-01 C095 Москва маркетплейс Чай Травяной сбор 50 г 260 1
2 10002 2025-01-01 C059 Москва приложение Сладости Шоколад горький 180 1
3 10002 2025-01-01 C059 Москва приложение Чай Чёрный чай 100 г 350 1

Параметр передают по имени: nrows=4. Так же — имя=значение — передают и другие параметры функций pandas.

[ ]Упражнение 4Первые 100 строк решено

Загрузите из файла data/shop_orders.csv только первые 100 строк и сохраните таблицу в sample. Таблицу orders не меняйте.

sample = ...

Итоги

  • import pandas as pd, затем pd.read_csv("путь") — и в руках таблица DataFrame.
  • head(n) и tail(n) — первые и последние строки. Методы вызывают скобками.
  • shape — (строки, столбцы), len(таблица) — число строк, columns — названия столбцов. Это атрибуты, скобки у них не пишут.
  • nrows= читает только начало файла.

Подробнее в справочнике

Нашли ошибку?