Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ### fill the gaps below and send the script back
- import pandas as pd
- import numpy as np
- d = {'url':'https://www.numbeo.com/quality-of-life/rankings_by_country.jsp',
- 'name': 'rankings_by_country',
- 'load_func': lambda URL: pd.read_html(URL)[1]}
- df = d['load_func'](d['url'])
- # заполняем пробелы: добавляем рейтинг
- df['Rank']=np.arange(len(df))[::1]+1
- # охраняем скрипт в виде html
- df_html = df.to_html()
- # выводим
- print(df)
- print(df_html)
- ### find top 5 countries by Quality of Life Index, excluding Luxembourg, Denmark, Switzerland
- top_5_quality_of_life = df.loc[~df['Country'].isin(['Luxembourg', 'Denmark', 'Switzerland'])].Country.to_list()[:5]
- print(top_5_quality_of_life)
- ### calculate average Quality of Life Index in Europe*
- # загружаем справочник по странам и континентам
- f = {'url':'https://www.artlebedev.ru/country-list/xml/',
- 'name': 'rankings_by_country',
- 'load_func': lambda URL: pd.read_xml(URL)}
- # формируем список стран и континентов
- country_list = f['load_func'](f['url'])[['english','location']].rename(
- columns={'english':'Country','location':'Continent'})
- # объединяем таблицы
- df_full = pd.merge(
- df, country_list, how='left')
- # смотрим пропуски
- print(df_full.loc[df_full.Continent.isna()])
- # обрабатываем пропуски
- df_full.loc[(df_full['Country'].isin(['Bosnia And Herzegovina', 'North Macedonia', 'Russia'])) &
- (df_full['Continent'].isna()), 'Continent'] = 'Европа'
- # calculate average Quality of Life Index in Europe*
- avg_quality_of_life_europe = df_full.loc[df_full['Continent'] == 'Европа']['Quality of Life Index'].mean()
- print(avg_quality_of_life_europe)
- ### calculate average Quality of Life Index in Africa*
- avg_quality_of_life_africa = df_full.loc[df_full['Continent'] == 'Африка']['Quality of Life Index'].mean()
- print(avg_quality_of_life_africa)
- ### try to split countries into segments using approach you prefer
- ## cегментируем данные по суммарному индексу уровня жизни и
- ## добавляем новый категориальный признак: Quality of Life
- # создаем список колонок
- list_columns = df.columns[2:]
- # создаем новую клонку: суммарный индекс
- df['Sum_idx']= df[list_columns].sum(axis=1)
- # выводим статистики нового признака
- print(df.Sum_idx.describe())
- # разбиваем данные на три сегмента по суммарному индексу
- df['Quality of Life'] = pd.cut(df['Sum_idx'], 3,
- labels=['low', 'average', 'high'])
- # выводим таблицу, сортируя данные по новому признаку
- print(df.sort_values(by='Sum_idx', ascending=False))
- # считаем средние значения суммарного признака по новым сегментам
- print(df.groupby('Quality of Life', observed=True)['Sum_idx'].mean())
- # считаем количество стран по сегментам
- print(df['Quality of Life'].value_counts())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement