ЛР срезы и query. 'St. Petersburg', 'St. Petersburg'
Скачать 1.37 Mb.
|
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 нужные значения. |