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

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

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

pd.read_csv через io.StringIO: конфликт usecols и parse_dates

Что уже дано

Проверяющая система выполняет скрытый start_code, который не создаёт никаких переменных. Все данные вы формируете сами.

Что нужно сделать

Напишите верхнеуровневый код (без функций), который:

  1. Создаёт CSV-источник в памяти через io.StringIO со следующим содержимым:
visit_id,page,duration,visit_date
1,home,30,2024-04-01
2,catalog,120,2024-04-03
3,home,15,2024-04-07
4,checkout,200,2024-04-10
  1. Загружает данные через pd.read_csv с тремя параметрами:
  • usecols=['visit_id', 'duration', 'visit_date'] — загрузить только эти три столбца (без page);
  • dtype={'visit_id': 'int32', 'duration': 'int32'} — задать типы явно;
  • parse_dates=['visit_date'] — разобрать столбец visit_date как дату.
  1. Сохраняет результат в переменную df.
  2. Создаёт переменную shape — кортеж df.shape.
  3. Создаёт переменную cols — список имён столбцов: list(df.columns).
  4. Создаёт переменную dtypes_dict — словарь {имя_столбца: str(df[имя_столбца].dtype) for имя_столбца in df.columns}.

Проверяющая система читает переменные df, shape, cols и dtypes_dict после выполнения вашего кода.

Ввод и вывод

stdin не используется. Печатать через print в stdout ничего не нужно.

Проверяющая система читает верхнеуровневые переменные df, shape, cols и dtypes_dict после выполнения вашего кода и проверяет:

  • shape равен (4, 3);
  • cols содержит ровно ['visit_id', 'duration', 'visit_date'] (без page);
  • dtypes_dict['visit_id'] равен 'int32';
  • dtypes_dict['duration'] равен 'int32';
  • dtypes_dict['visit_date'] начинается с 'datetime64';
  • столбец page в df отсутствует.
О данных в ответах

Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.

РешениеPython · Python 3.12 (data: numpy, pandas, sklearn...)
Как проверяется решение

Проверяются функции и их результаты. Собственный запуск выполняет ваш код без авторских тестов. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.

Отправьте решение, чтобы увидеть результаты тестов.