Original size 853x1280

Анализ демографии Российской Федерации

PROTECT STATUS: not protected

Анализ демографии Российской Федерации

Для своего проекта я взяла данные, которые представлены на сайте Росстата по численности населения Российской Федерации в период с 2005 по 2023 год. Также в таблице приведена статистика по разным регионам России.

Анализ графиков о демографии в России имеет значительную ценность, так как позволяет визуально выявить долгосрочные тенденции в численности населения, рождаемости и миграции, что помогает понять влияние социально-экономических условий на демографические изменения. Эти данные необходимы для планирования ресурсов, таких как образование и здравоохранение, а также для научных исследований, прогнозирования будущих изменений и разработки эффективных политик в ответ на вызовы, связанные со старением населения и миграционными процессами.

В проекте используется три вида диаграмм: столбчатые, линейные графики и тепловая карта, так как они позволяют более наглядно проиллюстрировать изменения в демографии.

Импорт библиотек

import pandas as pd import matplotlib.pyplot as plt import numpy as np

Загрузка данных из файла

file_path = 'russian_demography.xlsx' df = pd.read_excel (file_path, sheet_name=0, header=None)

Извлечение данных

years_raw = df.iloc[4, 1:-1].values # годы (строка 5) population_older_raw = df.iloc[6, 1:-1].values # численность старше трудоспособного percentage_older_raw = df.iloc[7, 1:-1].values # доля в процентах

Расчет годового изменения

annual_change = [np.nan] + list (np.diff (population_older))

Создание графиков

fig, axs = plt.subplots (3, 1, figsize=(12, 18))

График численности населения старше трудоспособного возраста

axs[0].plot (years, population_older, marker='o', color='b') axs[0].set_title ('Численность населения старше трудоспособного возраста РФ') axs[0].set_ylabel ('Численность (тыс. чел.)') axs[0].grid (True)

График доли населения старше трудоспособного возраста

axs[1].plot (years, percentage_older, marker='o', color='g') axs[1].set_title ('Доля населения старше трудоспособного возраста РФ') axs[1].set_ylabel ('Доля (%)') axs[1].grid (True)

График годового изменения численности

axs[2].bar (years[1:], annual_change[1:], color='orange') axs[2].set_title ('Годовое изменение численности населения старше трудоспособного возраста в РФ') axs[2].set_ylabel ('Изменение (тыс. чел.)') axs[2].grid (True)

Загрузка данных для регионов

df = pd.read_excel (file_path, sheet_name=1, header=None)

Извлечение данных для регионов

years_raw = df.iloc[4, 1: 3].values # годы (строка 5, каждая третья колонка) regions = df.iloc[6:, 0].values # названия регионов

Создание DataFrame для хранения данных

data_total = pd.DataFrame (index=regions) data_elderly = pd.DataFrame (index=regions) data_percentage = pd.DataFrame (index=regions)

Заполнение DataFrame

for i, year in enumerate (years): col_idx = 2 + i * 3 if col_idx + 2 < df.shape[1]: data_total[year] = df.iloc[6:, col_idx].values data_elderly[year] = df.iloc[6:, col_idx + 1].values data_percentage[year] = df.iloc[6:, col_idx + 2].values else: print (f"Ошибка: Недостаточно данных для года {year}. Пропускаем.»)

Удаление строк с пропущенными значениями

data_total.dropna (inplace=True) data_elderly.dropna (inplace=True) data_percentage.dropna (inplace=True)

Преобразование данных в числовой формат

data_total = data_total.apply (pd.to_numeric, errors='coerce') data_elderly = data_elderly.apply (pd.to_numeric, errors='coerce') data_percentage = data_percentage.apply (pd.to_numeric, errors='coerce')

Анализ демографии Российской Федерации
Project created at 23.03.2025