Appearance
Tasks pandas
Pandas Data Structures
2877. Create a DataFrame from List - Создать DataFrame из списка. (Вопрос: 2877)
Легкий
Напишите решение для создания DataFrame из двумерного списка с именем student_data. Этот двумерный список содержит идентификаторы и возраст некоторых студентов.
DataFrame должен содержать два столбца, student_id и age, и их порядок должен совпадать с порядком элементов в исходном двумерном списке.
Формат результата представлен в следующем примере.
Пример 1:
Входные данные: student_data:
text
[
[1, 15],
[2, 11],
[3, 11],
[4, 20]
]Выходные данные:
text
+------------+-----+
| student_id | age |
+------------+-----+
| 1 | 15 |
| 2 | 11 |
| 3 | 11 |
| 4 | 20 |
+------------+-----+Пояснение: На основе данных student_data был создан DataFrame с двумя столбцами, названными student_id и age.
python
import pandas as pd
def createDataframe(student_data: List[List[int]]) -> pd.DataFrame:Data Inspection
2878. Get the Size of a DataFrame - Получение размера DataFrame
Легкий Намекать DataFrame_players:
text
+------------------+--------+
| Название столбца | Тип |
+------------------+--------+
| player_id | int |
| имя | объект |
| возраст | инт |
| позиция | объект |
| ... | ... |
+------------------+--------+Напишите решение для вычисления и отображения количества строк и столбцов players.
Верните результат в виде массива:
[number of rows, number of columns]
Формат результата представлен в следующем примере.
Пример 1:
Ввод:
text
+-----------+------------+-----+----------------------+-------------------+
| player_id | name | age | position | team |
+-----------+------------+-----+----------------------+-------------------+
| 846 | Мейсон | 21 | Вперед | Реал Мадрид |
| 749 | Райли | 30 | Вингер | Барселона |
| 155 | Боб | 28 | Нападающий | Манчестер Юнайтед |
| 583 | Изабелла | 32 | Вратарь | Ливерпуль |
| 388 | Захари | 24 | Полузащитник | Бавария Мюнхен |
| 883 | Ава | 23 | Защитник | Челси |
| 355 | Фиолетовый | 18 | Нападающий | Ювентус |
| 247 | Томас | 27 | Нападающий | Пари Сен-Жермен |
| 761 | Джек | 33 | Полузащитник | Манчестер Сити |
| 642 | Чарли | 36 | Центральный защитник | Арсенал |
+-----------+------------+-----+----------------------+-------------------+Выход: [10, 5] Пояснение: Этот DataFrame содержит 10 строк и 5 столбцов.
python
import pandas as pd
def getDataframeSize(players: pd.DataFrame) -> List[int]:2879. Display the First Three Rows - Отобразить первые три строки.
Легкий Намекать DataFrame: employees
text
+------------------+--------+
| Название столбца | Тип |
+------------------+--------+
| employee_id | int |
| имя | объект |
| отдел | объект |
| зарплата | инт |
+------------------+--------+Напишите решение для отображения первых 3 строк этого DataFrame.
Пример 1:
Входные данные: DataFrame employees
text
+--------------------------+----------+---------------------------+----------+
| идентификатор сотрудника | имя | отдел | зарплата |
+--------------------------+----------+---------------------------+----------+
| 3 | Боб | Операции | 48675 |
| 90 | Алиса | Продажи | 11096 |
| 9 | Татьяна | Инженерное дело | 33805 |
| 60 | Аннабель | Информационные технологии | 37678 |
| 49 | Джонатан | Человеческие ресурсы | 23793 |
| 43 | Халед | Администрация | 40454 |
+--------------------------+----------+---------------------------+----------+Выход:
text
+--------------------------+---------+-----------------+----------+
| идентификатор сотрудника | имя | отдел | зарплата |
+--------------------------+---------+-----------------+----------+
| 3 | Боб | Операции | 48675 |
| 90 | Алиса | Продажи | 11096 |
| 9 | Татьяна | Инженерное дело | 33805 |
+--------------------------+---------+-----------------+----------+Пояснение: Отображаются только первые 3 строки.
python
import pandas as pd
def selectFirstRows(employees: pd.DataFrame) -> pd.DataFrame:Data Selecting
2880. Select Data - Выберите данные (Вопрос: 2880)
Легкий Намекать DataFrame students
text
+------------------+--------+
| Название столбца | Тип |
+------------------+--------+
| student_id | int |
| имя | объект |
| возраст | инт |
+------------------+--------+Напишите решение для выбора имени и возраста студента с помощью student_id = 101.
Формат результата представлен в следующем примере.
Пример 1: Вход:
text
+------------------------+--------+---------+
| идентификатор студента | имя | возраст |
+------------------------+--------+---------+
| 101 | Улисс | 13 |
| 53 | Уильям | 10 |
| 128 | Генрих | 6 |
| 3 | Генрих | 11 |
+------------------------+--------+---------+Выход:
text
+-------+---------+
| имя | возраст |
+-------+---------+
| Улисс | 13 |
+-------+---------+Пояснение: У пользователя Ulysses идентификатор студента равен 101, мы выбираем имя и возраст.
python
import pandas as pd
def selectData(students: pd.DataFrame) -> pd.DataFrame:2881. Create a New Column - Создать новый столбец (Вопрос: 2881)
Легкий Намекать DataFrame employees
text
+------------------+---------------+
| Название столбца | Тип |
+------------------+---------------+
| имя | объект |
| зарплата | международный |
+------------------+---------------+Компания планирует выплатить своим сотрудникам премию.
Напишите решение для создания нового столбца с именем bonus, содержащего удвоенные значения столбца salary.
Формат результата представлен в следующем примере.
Пример 1:
Вход: DataFrame employees
text
+--------+----------+
| имя | зарплата |
+--------+----------+
| Пайпер | 4548 |
| Грейс | 28150 |
| Грузия | 1103 |
| Уиллоу | 6593 |
| Финн | 74576 |
| Томас | 24433 |
+--------+----------+Выход:
text
+--------+----------+--------+
| имя | зарплата | бонус |
+--------+----------+--------+
| Пайпер | 4548 | 9096 |
| Грейс | 28150 | 56300 |
| Грузия | 1103 | 2206 |
| Уиллоу | 6593 | 13186 |
| Финн | 74576 | 149152 |
| Томас | 24433 | 48866 |
+--------+----------+--------+Пояснение: Новый бонус в столбце создается путем удвоения значения в столбце «Заработная плата».
python
import pandas as pd
def createBonusColumn(employees: pd.DataFrame) -> pd.DataFrame:Data Cleaning
2882. Drop Duplicate Rows - Удалить повторяющиеся строки. (Вопрос: 2882)
Легкий Намекать DataFrame customers
text
+-------------------+--------+
| Название столбца | Тип |
+-------------------+--------+
| customer_id | int |
| имя | объект |
| электронная почта | объект |
+-------------------+--------+В DataFrame обнаружены повторяющиеся строки, соответствующие определенному email столбцу.
Напишите решение для удаления этих повторяющихся строк и сохранения только первого вхождения.
Формат результата представлен в следующем примере.
Пример 1: Входные данные:
text
+-----------------------+---------+---------------------+
| идентификатор клиента | имя | электронная почта |
+-----------------------+---------+---------------------+
| 1 | Элла | emily@example.com |
| 2 | Дэвид | michael@example.com |
| 3 | Захари | sarah@example.com |
| 4 | Элис | john@example.com |
| 5 | Финн | john@example.com |
| 6 | Вайолет | alice@example.com |
+-----------------------+---------+---------------------+Выход:
text
+-----------------------+---------+---------------------+
| идентификатор клиента | имя | электронная почта |
+-----------------------+---------+---------------------+
| 1 | Элла | emily@example.com |
| 2 | Дэвид | michael@example.com |
| 3 | Захари | sarah@example.com |
| 4 | Элис | john@example.com |
| 6 | Вайолет | alice@example.com |
+-----------------------+---------+---------------------+Пояснение: Алик (customer_id = 4) и Финн (customer_id = 5) используют адрес john@example.com, поэтому сохраняется только первое упоминание этого адреса электронной почты.
python
import pandas as pd
def dropDuplicateEmails(customers: pd.DataFrame) -> pd.DataFrame:2883. Drop Missing Data - Удалить отсутствующие данные. (Вопрос: 2883)
Легкий Намекать DataFrame students
text
+------------------+--------+
| Название столбца | Тип |
+------------------+--------+
| student_id | int |
| имя | объект |
| возраст | инт |
+------------------+--------+В некоторых строках этого столбца отсутствуют значения name.
Напишите решение для удаления строк с пропущенными значениями.
Формат результата представлен в следующем примере.
Пример 1:
Ввод:
text
+------------------------+--------+---------+
| идентификатор студента | имя | возраст |
+------------------------+--------+---------+
| 32 | Пайпер | 5 |
| 217 | Нет | 19 |
| 779 | Грузия | 20 |
| 849 | Ива | 14 |
+------------------------+--------+---------+Вывод:
text
+------------------------+--------+---------+
| идентификатор студента | имя | возраст |
+------------------------+--------+---------+
| 32 | Пайпер | 5 |
| 779 | Грузия | 20 |
| 849 | Ива | 14 |
+------------------------+--------+---------+Пояснение: У студента с идентификатором 217 в столбце «Имя» пустое значение, поэтому оно будет удалено.
python
import pandas as pd
def dropMissingData(students: pd.DataFrame) -> pd.DataFrame:2884. Modify Columns - Изменить столбцы (Вопрос: 2884)
Легкий Намекать DataFrame employees
text
+------------------+--------+
| Название столбца | Тип |
+------------------+--------+
| имя | объект |
| зарплата | инт |
+------------------+--------+Компания намерена повысить заработную плату своим сотрудникам.
Напишите решение, которое изменит столбец salary, умножив каждую зарплату на 2.
Формат результата представлен в следующем примере.
Пример 1:
Входные данные: DataFrame employees
text
+--------+----------+
| имя | зарплата |
+--------+----------+
| Джек | 19666 |
| Пайпер | 74754 |
| Миа | 62509 |
| Улисс | 54866 |
+--------+----------+Вывод:
text
+--------+----------+
| имя | зарплата |
+--------+----------+
| Джек | 39332 |
| Пайпер | 149508 |
| Миа | 125018 |
| Улисс | 109732 |
+--------+----------+Пояснение: Всем сотрудникам удвоили зарплату.
python
import pandas as pd
def modifySalaryColumn(employees: pd.DataFrame) -> pd.DataFrame:2885. Rename Columns - Переименовать столбцы (Вопрос: 2885)
Легкий Намекать DataFrame students
text
+------------------+--------+
| Название столбца | Тип |
+------------------+--------+
| id | int |
| первый | объект |
| последний | объект |
| возраст | инт |
+------------------+--------+Напишите решение для переименования столбцов следующим образом:
| Было | Стало |
|---|---|
| id | student_id |
| first | first_name |
| last | last_name |
| age | age_in_years |
Формат результата представлен в следующем примере.
Пример 1: Ввод:
text
+---------------+----------+---------+---------+
| идентификатор | имя | фамилия | возраст |
+---------------+----------+---------+---------+
| 1 | Мейсон | Кинг | 6 |
| 2 | Ава | Райт | 7 |
| 3 | Тейлор | Холл | 16 |
| 4 | Джорджия | Томпсон | 18 |
| 5 | Томас | Мур | 10 |
+---------------+----------+---------+---------+Выход:
text
+------------+------------+-----------+--------------+
| student_id | first_name | last_name | age_in_years |
+------------+------------+-----------+--------------+
| 1 | Мейсон | Кинг | 6 |
| 2 | Ава | Райт | 7 |
| 3 | Тейлор | Холл | 16 |
| 4 | Джорджия | Томпсон | 18 |
| 5 | Томас | Мур | 10 |
+------------+------------+-----------+--------------+Пояснение: Названия столбцов изменены соответствующим образом.
python
import pandas as pd
def renameColumns(students: pd.DataFrame) -> pd.DataFrame:2886. Change Data Type - Изменить тип данных (Вопрос: 2886)
Легкий Намекать DataFrame students
text
+------------------+-----------+
| Название столбца | Тип |
+------------------+-----------+
| student_id | int |
| имя | объект |
| возраст | инт |
| класс | плавающий |
+------------------+-----------+Напишите решение для исправления ошибок:
В столбце grade хранятся числа с плавающей запятой, преобразуйте их в целые числа.
Формат результата представлен в следующем примере.
Пример 1: Входные данные: DataFrame students:
text
+------------------------+------+---------+-------+
| идентификатор студента | имя | возраст | класс |
+------------------------+------+---------+-------+
| 1 | Ава | 6 | 73.0 |
| 2 | Кейт | 15 | 87.0 |
+------------------------+------+---------+-------+Вывод:
text
+------------------------+------+---------+-------+
| идентификатор студента | имя | возраст | класс |
+------------------------+------+---------+-------+
| 1 | Ава | 6 | 73 |
| 2 | Кейт | 15 | 87 |
+------------------------+------+---------+-------+Пояснение: Тип данных столбца grade преобразуется в целое число (int).
python
import pandas as pd
def changeDatatype(students: pd.DataFrame) -> pd.DataFrame:2887. Fill Missing Data - Заполните недостающие данные. (Вопрос: 2887)
Легкий Намекать DataFrame products
text
+------------------+--------+
| Название столбца | Тип |
+------------------+--------+
| имя | объект |
| количество | инт |
| цена | инт |
+------------------+--------+Напишите решение для заполнения пропущенного значения 0 в quantity столбце.
Формат результата представлен в следующем примере.
Пример 1: Ввод:
text
+-----------------------+------------+------+
| название | количество | цена |
+-----------------------+------------+------+
| Наручные часы | Нет | 135 |
| Беспроводные наушники | Нет | 821 |
| Клюшки для гольфа | 779 | 9319 |
| Принтер | 849 | 3051 |
+-----------------------+------------+------+Вывод:
text
+-----------------------+------------+------+
| название | количество | цена |
+-----------------------+------------+------+
| Наручные часы | 0 | 135 |
| Беспроводные наушники | 0 | 821 |
| Клюшки для гольфа | 779 | 9319 |
| Принтер | 849 | 3051 |
+-----------------------+------------+------+Пояснение: Количество для наручных часов и беспроводных наушников заполнено значением 0.
python
import pandas as pd
def fillMissingValues(products: pd.DataFrame) -> pd.DataFrame:Table Reshaping
2888. Reshape Data: Concatenate - Изменение формы данных: объединение. (Вопрос: 2888)
Легкий Намекать DataFrame df1
text
+------------------+--------+
| Название столбца | Тип |
+------------------+--------+
| student_id | int |
| имя | объект |
| возраст | инт |
+------------------+--------+DataFrame df2
text
+------------------+--------+
| Название столбца | Тип |
+------------------+--------+
| student_id | int |
| имя | объект |
| возраст | инт |
+------------------+--------+Напишите решение для вертикального объединения этих двух DataFrame в один DataFrame.
Формат результата представлен в следующем примере.
Пример 1: DataFrame df1:
text
+------------------------+--------+---------+
| идентификатор студента | имя | возраст |
+------------------------+--------+---------+
| 1 | Мейсон | 8 |
| 2 | Ава | 6 |
| 3 | Тейлор | 15 |
| 4 | Грузия | 17 |
+------------------------+--------+---------+DataFrame df2:
text
+------------------------+-------+---------+
| идентификатор студента | имя | возраст |
+------------------------+-------+---------+
| 5 | Лев | 7 |
| 6 | Алекс | 7 |
+------------------------+-------+---------+Выход: DataFrame df:
text
+------------------------+--------+---------+
| идентификатор студента | имя | возраст |
+------------------------+--------+---------+
| 1 | Мейсон | 8 |
| 2 | Ава | 6 |
| 3 | Тейлор | 15 |
| 4 | Грузия | 17 |
| 5 | Лев | 7 |
| 6 | Алекс | 7 |
+------------------------+--------+---------+Пояснение: Два DataFrames расположены вертикально друг над другом, и их строки объединены.
python
import pandas as pd
def concatenateTables(df1: pd.DataFrame, df2: pd.DataFrame) -> pd.DataFrame:2889. Reshape Data: Pivot - Изменение формы данных: сводная таблица. (Вопрос: 2889)
Легкий Намекать DataFrame weather
text
+------------------+------------+
| Название столбца | Тип |
+------------------+------------+
| город | объект |
| месяц | объект |
| температура | внутренний |
+------------------+------------+Напишите решение для преобразования данных таким образом, чтобы каждая строка представляла температуру за конкретный месяц, а каждый город был отдельным столбцом.
Формат результата представлен в следующем примере.
Пример 1: Входные данные:
text
+-------------+---------+-------------+
| город | месяц | температура |
+-------------+---------+-------------+
| Джексонвилл | Январь | 13 |
| Джексонвилл | Февраль | 23 |
| Джексонвилл | Март | 38 |
| Джексонвилл | Апрель | 5 |
| Джексонвилл | Май | 34 |
| Эль-Пасо | Январь | 20 |
| Эль-Пасо | Февраль | 6 |
| Эль-Пасо | Март | 26 |
| Эль-Пасо | Апрель | 2 |
| Эль-Пасо | Май | 43 |
+-------------+---------+-------------+Результат:
text
+----------+--------+--------------+
| month | ElPaso | Jacksonville |
+----------+--------+--------------+
| April | 2 | 5 |
| February | 6 | 23 |
| January | 20 | 13 |
| March | 26 | 38 |
| May | 43 | 34 |
+----------+--------+--------------+Пояснение: Таблица является сводной, каждый столбец представляет город, а каждая строка — конкретный месяц.
python
import pandas as pd
def pivotTable(weather: pd.DataFrame) -> pd.DataFrame:2890. Reshape Data: Melt - Изменение формы данных: Плавление (Вопрос: 2890)
Легкий Намекать
DataFrame report
text
+------------------+--------+
| Название столбца | Тип |
+------------------+--------+
| продукт | объект |
| quarter_1 | int |
| quarter_2 | int |
| quarter_3 | int |
| quarter_4 | int |
+------------------+--------+Напишите решение для преобразования данных таким образом, чтобы каждая строка представляла данные о продажах продукта за определенный квартал.
Формат результата представлен в следующем примере.
Пример 1:
Ввод: DataFrame report:
text
+----------------+-----------+-----------+-----------+-----------+
| продукт | quarter_1 | quarter_2 | quarter_3 | quarter_4 |
+----------------+-----------+-----------+-----------+-----------+
| Зонт | 417 | 224 | 379 | 611 |
| Спальный мешок | 800 | 936 | 93 | 875 |
+----------------+-----------+-----------+-----------+-----------+Выход:
text
+----------------+-----------+---------+
| продукт | quarter | продажи |
+----------------+-----------+---------+
| Зонт | quarter_1 | 417 |
| Спальный мешок | quarter_1 | 800 |
| Зонт | quarter_2 | 224 |
| Спальный мешок | quarter_2 | 936 |
| Зонт | quarter_3 | 379 |
| Спальный мешок | quarter_3 | 93 |
| Зонт | quarter_4 | 611 |
| Спальный мешок | quarter_4 | 875 |
+----------------+-----------+---------+Пояснение: Формат DataFrame изменен с широкого на длинный. Каждая строка представляет собой объем продаж продукта за квартал.
python
import pandas as pd
def meltTable(report: pd.DataFrame) -> pd.DataFrame:Advanced Techniques
2891. Method Chaining - Последовательность методов (Вопрос: 2891)
Легкий
DataFrame animals
text
+------------------+--------+
| Название столбца | Тип |
+------------------+--------+
| имя | объект |
| вид | объект |
| возраст | инт |
| вес | инт |
+------------------+--------+Напишите решение, которое перечислит названия животных, вес которых строго превышает 100 килограммы.
Верните животных, отсортированных по весу в порядке убывания.
Формат результата представлен в следующем примере.
Пример 1:
Вход: DataFrame animals:
text
+----------+----------+---------+-----+
| имя | вид | возраст | вес |
+----------+----------+---------+-----+
| Татьяна | Змея | 98 | 464 |
| Халед | Жираф | 50 | 41 |
| Алекс | Леопард | 6 | 328 |
| Джонатан | Обезьяна | 45 | 463 |
| Стефан | Медведь | 100 | 50 |
| Томми | Панда | 26 | 349 |
+----------+----------+---------+-----+Выход:
text
+----------+
| имя |
+----------+
| Татьяна |
| Джонатан |
| Томми |
| Алекс |
+----------+Пояснение: В таблицу результатов следует включить всех животных, вес которых превышает 100. Вес Татьяны составляет 464, вес Джонатана — 463, вес Томми — 349, а вес Алекса — 328. Результаты следует отсортировать в порядке убывания веса.
В Pandas цепочка методов позволяет выполнять операции над DataFrame без разбивки каждой операции на отдельную строку или создания множества временных переменных.
Вы сможете выполнить эту задачу всего одной строкой кода, используя цепочку методов?
python
import pandas as pd
def findHeavyAnimals(animals: pd.DataFrame) -> pd.DataFrame: