ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.02.2024
Просмотров: 99
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
df = pd.DataFrame(
{
'From': [
'Moscow',
'Moscow',
'St. Petersburg',
'St. Petersburg',
'St. Petersburg',
],
'To': ['Rome', 'Rome', 'Rome', 'Barcelona', 'Barcelona'],
'Is_Direct': [False, True, False, False, True],
'Has_luggage': [True, False, False, True, False],
'Price': [21032, 19250, 19301, 20168, 31425],
'Date_From': [
'01.07.19',
'01.07.19',
'04.07.2019',
'03.07.2019',
'05.07.2019',
],
'Date_To': [
'07.07.19',
'07.07.19',
'10.07.2019',
'09.07.2019',
'11.07.2019',
],
'Airline': ['Belavia', 'S7', 'Finnair', 'Swiss', 'Rossiya'],
'Travel_time_from': [995, 230, 605, 365, 255],
'Travel_time_to': [350, 225, 720, 355, 250],
}
)
import pandas as pd
df = pd.DataFrame(
{
'From': [
'Moscow',
'Moscow',
'St. Petersburg',
'St. Petersburg',
'St. Petersburg',
],
'To': ['Rome', 'Rome', 'Rome', 'Barcelona', 'Barcelona'],
'Is_Direct': [False, True, False, False, True],
'Has_luggage': [True, False, False, True, False],
'Price': [21032, 19250, 19301, 20168, 31425],
'Date_From': [
'01.07.19',
'01.07.19',
'04.07.2019',
'03.07.2019',
'05.07.2019',
],
'Date_To': [
'07.07.19',
'07.07.19',
'10.07.2019',
'09.07.2019',
'11.07.2019',
],
'Airline': ['Belavia', 'S7', 'Finnair', 'Swiss', 'Rossiya'],
'Travel_time_from': [995, 230, 605, 365, 255],
'Travel_time_to': [350, 225, 720, 355, 250],
}
)
print(df.query('To == "Barcelona"'))
Задание 1.
Выберите строки, где: Has_luggage равно False и Airline не равно ни S7, ни Rossiya. Напечатайте полученную выборку на экране.
*Запишите условия: Has_luggage равно False, Airline не в списке "S7", "Rossiya" (конструкция not in). Между ними поставьте and. Передайте получившуюся строку в query().
import pandas as pd
df = pd.DataFrame(
{
'From': [
'Moscow',
'Moscow',
'St. Petersburg',
'St. Petersburg',
'St. Petersburg',
],
'To': ['Rome', 'Rome', 'Rome', 'Barcelona', 'Barcelona'],
'Is_Direct': [False, True, False, False, True],
'Has_luggage': [True, False, False, True, False],
'Price': [21032, 19250, 19301, 20168, 31425],
'Date_From': [
'01.07.19',
'01.07.19',
'04.07.2019',
'03.07.2019',
'05.07.2019',
],
'Date_To': [
'07.07.19',
'07.07.19',
'10.07.2019',
'09.07.2019',
'11.07.2019',
],
'Airline': ['Belavia', 'S7', 'Finnair', 'Swiss', 'Rossiya'],
'Travel_time_from': [995, 230, 605, 365, 255],
'Travel_time_to': [350, 225, 720, 355, 250],
}
)
print(df.query(‘’)# впишите условие создания нужной выборки
import pandas as pd
df = pd.DataFrame(
{
'From': [
'Moscow',
'Moscow',
'St. Petersburg',
'St. Petersburg',
'St. Petersburg',
],
'To': ['Rome', 'Rome', 'Rome', 'Barcelona', 'Barcelona'],
'Is_Direct': [False, True, False, False, True],
'Has_luggage': [True, False, False, True, False],
'Price': [21032, 19250, 19301, 20168, 31425],
'Date_From': [
'01.07.19',
'01.07.19',
'04.07.2019',
'03.07.2019',
'05.07.2019',
],
'Date_To': [
'07.07.19',
'07.07.19',
'10.07.2019',
'09.07.2019',
'11.07.2019',
],
'Airline': ['Belavia', 'S7', 'Finnair', 'Swiss', 'Rossiya'],
'Travel_time_from': [995, 230, 605, 365, 255],
'Travel_time_to': [350, 225, 720, 355, 250],
}
)
max_time = 300
print(df.query('')) # впишите условие создания нужной выборки
Задание 2. Выберите строки, где Airline равно Belavia, S7 или Rossiya, при этом Travel_time_from меньше переменной под названием max_time. Напечатайте полученную выборку на экране.
*Составьте условие, проверяющее, есть ли Belavia, S7 или Rossiya в Airline: примените in, двойные кавычки для элементов и скобки для всего списка. В условии для Travel_time_from обратитесь к внешней переменной с символом @. Сложите условия оператором and, превратите в строку и передайте как аргумент методу query().
Задание 3.
Итак, нужно разобраться с аномалиями в выборке. Для начала найдите АЗС с самыми большими значениями в столбце time_spent.
Одной строкой кода отсортируйте таблицу по убыванию значений в столбце time_spent и выведите на экран первые 10 строк всей таблицы.
import pandas as pd
data = pd.read_csv('/datasets/visits.csv', sep='\t')
*Отсортируйте data по убыванию значений time_spent методом sort_values с параметром ascending=False. Затем выведите первые 10 строк методом..... Результат выведите на экран.
Задание 4.
Четыре из десяти самых долгих заездов произошли на станции под номером 3c1e4c52. Аналитик данных непременно спросит: «А как распределение времени, проведённого на этой АЗС, соотносится с распределением времени заездов в целом?» Нужно проверить. Для этого сделайте срез данных и извлеките всю информацию о станции 3c1e4c52.
Сделайте срез data по АЗС с id == "3c1e4c52" и сохраните результат в переменную sample.
Выведите на экран число заездов на эту АЗС.
import pandas as pd
data = pd.read_csv('/datasets/visits.csv', sep='\t')
*Примените к data метод query() с условием id == "3c1e4c52". Сохраните получившийся срез в переменной sample. Число заездов равно числу строк. С помощью функции len() выведите на экран число строк в sample.
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('/datasets/visits.csv', sep='\t')
sample = data.query('id == "3c1e4c52"')
Задание 5.
Нужно сравнить распределение времени пребывания на станции 3c1e4c52 с распределением времени пребывания на всех АЗС. Если они сильно различаются, возможно, станция 3c1e4c52 представляет собой статистический выброс.
Методом hist() постройте две гистограммы распределения значений в столбце time_spent: одну для объекта data, вторую — для sample. Не забудьте использовать plt.show() после каждого вызова hist().
Для обеих гистограмм задайте одинаковые аргументы: range — от 0 до 1500, bins — 100.
*Примените метод hist() к объектам data и sample и первым аргументом укажите столбец time_spent. Передайте параметрам bins и range нужные значения.