Главная страница

ЛР срезы и query. 'St. Petersburg', 'St. Petersburg'


Скачать 1.37 Mb.
Название'St. Petersburg', 'St. Petersburg'
АнкорЛР срезы и query
Дата31.03.2023
Размер1.37 Mb.
Формат файлаpptx
Имя файлаЛР срезы и query.pptx
ТипДокументы
#1027908

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 нужные значения.


написать администратору сайта