d
.Файл для работы:
polit.xlsx
(ссылка на файл)
Описание файла:
сокращенная версия файла PetersMcGuireData.xlsx
, взятого отсюда (страница James W.McGuire, Data used in “Authoritarianism in the Middle East”).
Переменные:
ctry
– countryfh09
– Freedom House index (ranging from 1 (most) to 7 (fewest) political rights and civil liberties), 2009polity09
– Polity2 score (ranging from -10 to +10, latter most democratic), 2009gini
– Gini index of income inequality, 2000-2010fparl08
– female share of seats in parliament (%), 2008mena
– Middle East and North Africa (1 - yes, 0 - no)lati
– Latin America (1 - yes, 0 - no)cari
– Caribbean, former British, French, Dutch colonyeast
– East Asiasov
i – Former Soviet Blocafri
– Africacorr0509
– Control of Corruption, average 2005-2009 (expert rating).Загрузите таблицу из файла polit.xlsx
и сохраните ее в переменную df
. Используйте функцию read_excel()
.
Выведите общую информацию по таблице: число строк и столбцов, типы данных в таблице. Есть ли в таблице пропущенные значения?
Если в таблице есть строки с пропущенными значениями, удалите их. Сохраните изменения в df
.
Выведите на экран описательные статистики по всем количественным переменным в таблице. Выберите какой-нибудь интересующий вас столбец и проинтерпретируйте описательные статистики по нему (т.е. опишите «обычными» словами, что значат значения типа min
, std
, 50%
и так далее).
Выберите в таблице строки, которые соответствуют странам со значениями Freedom House (fh09
) выше 5. Сохраните их в переменную not_free
.
Выберите в таблице строки, которые соответствуют странам Африки (afri
) с процентом женщин в парламенте выше 30%.
Выберите в таблице строки, которые соответствуют странам Африки или Латинской Америки (afri
и lati
) со значением polity09
больше или равным 8.
Отсортируйте строки в таблице в соответствии со значениями столбца со средними значениями индекса Control of Corruption (corr0509
) по убыванию и выведите: первые 10 строк; последние 10 строк. Используйте метод .sort_values()
.
Пример:
df.sort_values('column_name', ascending = False) # ascend - возрастать
Добавьте в df
столбец corr_round
, в котором будут храниться округленные до 2 знака после запятой значения индекса Control of Corruption (corr0509
).
Добавьте в df
столбец fh_status
, в котором будут храниться типы стран в зависимости от значения индекса Freedom House (значения free
, partly free
, not free
). Соответствие значений fh09
с типами стран см. здесь (в конце, Table 3).
Сгруппируйте строки в таблице в соответствии со значениями столбца fh_status
, полученного в предыдущей части и выведите минимальное, среднее и максимальное значение показателя gini
(индекс Джини) по каждой группе.
Сгруппируйте строки в таблице в соответствии со значениями столбца fh_status
и запишите строки, относящиеся к разным группам, в отдельные csv-файлы.
Подсказка: используйте цикл for
и перебирайте в нем пары название группы-датафрейм. Попробуйте прогнать следующий код и посмотреть, что получится:
for name, table in df.groupby('fh_status'):
print(name, table.head(2))
Сочетая функционал pandas
и matplotlib
, постройте диаграмму рассеяния (scatterplot, функция scatter()
) для пары показателей fh09
и corr0509
. Поменяйте тип точек (маркер) и цвет точек. Добавьте заголовок к графику.