Тренажёр: читаем файл с pandas
Тот же разбор файла-таблицы, но командами pandas: датафрейм, колонки, пропуски и статистика — коротко и наглядно. Библиотека работает прямо в браузере.
Датафрейм вместо списка
pandas читает таблицу в датафрейм одной командой: df = pd.read_csv("table.csv", sep=";"). Дальше с колонками работают по именам: df["score"].
Структура таблицы
Число строк — df.shape[0], список колонок — list(df.columns), первые строки — df.head(). Так за секунду видно, с чем имеешь дело.
Пропуски и статистика
Пропуски: df["city"].isna().sum() по колонке и df.isna().sum().sum() по всей таблице. Границы — .min() и .max(), уникальные — .nunique() (пропуски не считаются), сумма — .sum().
Как пользоваться этим режимом. На каждом шаге прочитайте вопрос и допишите команду pandas в песочнице, затем «Выполнить» и «Проверить». Import pandas и чтение файла уже готовы; при трудностях откройте решение.
Мини-разбор: что обычно смотрят в файле
Перед вами одни и те же данные в двух видах: текстовый файл — как он лежит на диске (построчно, поля через разделитель ;) — и таблица, как её читает программа. Это не два разных набора, а одно и то же. Идите по шагам: активный шаг подсвечивает нужное в обоих видах и показывает код с результатом.
Прежде чем что-то считать, посмотри на данные: выведи первые строки. pandas покажет их таблицей — видны колонки и заголовок, а пропуск превращается в NaN.
Имена колонок pandas хранит в Index — это и есть заголовок таблицы.
Строка-заголовок не считается. Число строк данных — базовая величина: от неё зависят средние и проценты.
Пустое поле между разделителями — это пропуск. Проверь важную колонку: данные могут быть заполнены не везде.
Полезно знать общее число пропусков — сколько полей пустые во всех колонках.
Минимум и максимум показывают масштаб значений и помогают заметить выбросы.
Сколько разных значений в колонке — иначе «сколько городов», «сколько групп». Пропуски не считаем.
Итоговая величина по колонке — часто именно она и нужна в задаче.
Первая строка (0) — заголовок. Дальше по строке на запись, поля разделены ;.
| id | name | city | score |
|---|---|---|---|
| 1 | Аня | Москва | 17 |
| 2 | Борис | 23 | |
| 3 | Вера | Москва | 9 |
| 4 | Глеб | Казань | 42 |
| 5 | Дима | Сочи | 31 |
Клик по шапке — шаг «колонки», по строке — «сколько строк», по пустой ячейке — «пропуски».
import pandas as pd
df = pd.read_csv('table.csv', sep=';') # читаем таблицу
print(df.head(2)) # первые строки — таблицейid name city score 0 1 Аня Москва 17 1 2 Борис NaN 23
print(df.columns) # Index с именами колонокIndex(['id', 'name', 'city', 'score'], dtype='str')
print(df.shape[0])5
print(df['city'].isna().sum())1
print(df.isna().sum().sum())1
print(df['score'].min(), df['score'].max())9 42
print(df['city'].nunique())3
print(df['score'].sum())122