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

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

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

Найди и исправь: три ошибки в вызове pd.read_csv с usecols, dtype и parse_dates

Что уже дано

Проверяющая система выполняет скрытый start_code, который создаёт файл transactions.csv в рабочей директории. Содержимое файла:

txn_id,user_id,amount,currency,txn_date
1,42,100.0,RUB,2024-01-05
2,17,250.5,USD,2024-01-12
3,42,75.0,RUB,2024-02-01
4,99,500.0,EUR,2024-02-14

В редакторе уже есть сломанный код. В нём ровно три ошибки в трёх независимых строках:

  1. В usecols указан столбец 'currency', хотя по условию он должен быть исключён — нужны только 'txn_id', 'user_id', 'amount', 'txn_date'.
  2. В словаре dtype ключ для идентификатора транзакции написан как 'txn_id', но тип указан 'float64' — хотя это целочисленный идентификатор и должен быть 'int32'.
  3. В parse_dates указан столбец 'amount' — хотя разбирать как дату нужно столбец 'txn_date'.

Каждая ошибка находится в отдельной строке. Исправьте все три.

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

Отредактируйте код так, чтобы после исправления переменная df содержала DataFrame со следующими свойствами:

  • df.shape равен (4, 4);
  • столбцы — ['txn_id', 'user_id', 'amount', 'txn_date'] (без 'currency');
  • df['txn_id'].dtypeint32;
  • df['user_id'].dtypeint32;
  • df['amount'].dtypefloat64;
  • df['txn_date'].dtypedatetime64[ns].

Ввод и вывод

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

Проверяющая система читает верхнеуровневую переменную df после выполнения вашего кода и проверяет её shape, столбцы и dtypes.

О данных в ответах

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

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

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

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