csv
¶dat
.catch
в c_rate
.log_income
, содержащий натуральный логарифм доходов респондентов.pboat
, поменяйте ее цвет и добавьте название графика.Файл для работы
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 Asiasovi
– Former Soviet Blocafri
– Africacorr0509
– Control of Corruption, average 2005-2009 (expert rating).Задания
polit.xlsx
(воспользуйтесь функцией pd.read_excel
) и сохраните ее в переменную df
.df
.min
, std
, 50%
и так далее).fh09
) выше 5. Сохраните их в переменную not_free
.afri
) с процентом женщин в парламенте выше 30%.afri
и lati
) со значением polity09
больше или равным 8.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
. Поменяйте тип точек (маркер) и цвет точек. Добавьте заголовок к графику.