Рубрики
Без рубрики

Описательная статистика мирового ВВП на душу населения с использованием Python

Узнайте, как создавать описательную статистику для данных о ВВП с использованием методов Python data science.

Автор оригинала: Robin Andrews.

Единственный способ получить навыки работы с данными-это получить опыт. Теория может быть важной, но если у вас нет достаточного количества практического опыта, чтобы опираться на него, она останется абстрактной, и вы будете не готовы решать те проблемы, которые возникают, когда вы работаете с реальными данными на практике. Цель этих уроков-предоставить автономные сценарии, в которых вы можете развить свои навыки в области науки о данных, используя реальные данные и программирование на Python.

Задача:

Отображение квадратной диаграммы для набора данных, содержащего данные о мировом ВВП на душу населения за 2017 год

Источник данных: https://www.worldometers.info/gdp/gdp-per-capita/

ВВП на душу населения

Валовой внутренний продукт (ВВП) на душу населения показывает ВВП страны, деленный на ее общую численность населения. Набор данных, используемый в этом уроке, содержит номинальный ВВП на душу населения по странам. Он также включает данные по паритету покупательной способности (ППС) на душу населения, но мы не будем использовать его здесь.

Файл данных доступен здесь: World_GDP_Data_2017

Код в этом уроке был записан в блокноте Jupyter. Это означает, что его можно запускать последовательно с помощью IPython. Если вы хотите использовать неинтерактивный Python, вы можете создать файл .py и запустить его, как обычно, опустив любые специальные директивы, такие как %load_ext nb_black . В некоторых ситуациях вам также может потребоваться добавить операторы print для получения выходных данных.

Создание описательной статистики для ВВП на душу населения с помощью Python

# Optional auto-formatting. Installation required (`pip install nb_black`)
%load_ext nb_black

# Import required modules
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt


# Read data into a dataframe. The data file should be in the same directory as your script,
# or adjust the path to fit your directory structure.
# The raw data has no column headers.
df = pd.read_csv("World_GDP_Data_2017.txt", sep="\t", header=None)

# Display the first 5 items of the dataframe.
df.head()
1 Катар $128,647 $61,264 752% 0
2 Макао $115,367 $80,890 675% 1
3 Люксембург $107,641 $105,280 629% 2
4 Сингапур $94,105 $56,746 550% 3
5 Бруней $79,003 $28,572 462% 4
# Add headers so we can reference the data by column name.
df.columns = ["rank", "country", "ppp", "nominal", "~world"]
df.head()
$128,647 1 752% Катар $61,264 0
$115,367 2 675% Макао $80,890 1
$107,641 3 629% Люксембург $105,280 2
$94,105 4 550% Сингапур $56,746 3
$79,003 5 462% Бруней $28,572 4

Будет трудно работать со значениями в столбце nominal , поскольку они являются строками:

type(df.nominal[0])
str

поэтому мы собираемся выполнить преобразование, чтобы сделать значения числовыми.

# Convert `nominal` column data to float values using `replace` and regular expressions.
df["nominal"] = df["nominal"].replace({"\$": "", ",": ""}, regex=True).astype(int)
df.nominal.head()
0 61264
1 80890
2 105280
3 56746
4 28572
Name: nominal, dtype: int32

Теперь, когда у нас есть числовые значения номинального ВВП, мы можем использовать различные методы для анализа и представления данных. Мощным методом панды для вычисления описательной статистики является describe() :

df.nominal.describe()
count 190.000000
mean 14303.668421
std 19155.257580
min 293.000000
25% 2008.000000
50% 5765.000000
75% 16617.000000
max 105280.000000
Name: nominal, dtype: float64

Это дает нам некоторые ключевые значения, которые дают нам представление о данных. Ниже приводится краткое описание значений:

  • подсчет: сколько точек данных было включено?
  • среднее значение: Каково было среднее значение? (Среднее значение-это один конкретный тип среднего значения.)
  • std: Насколько широко распространены эти ценности?
  • min: Минимальное значение.
  • 25%: значение, ниже которого падает 25% данных.
  • 50%: значение, ниже которого падает 50% данных (медиана).
  • 75%: значение, ниже которого падает 75% данных.
  • max: Максимальное значение.

График ВВП на душу населения

Мы можем создать визуальное представление данных, используя различные типы графиков. A boxplot – это отличный способ получить представление о том, как распределяются данные, и обеспечивает простой способ понять некоторые из его важных свойств. Вертикальные линии слева направо соответствуют следующим значениям из приведенной выше описательной статистики: min , 25% , 50% , 75% , макс . По умолчанию matplotlib также показывает выбросы . Это точки данных, которые лежат значительно дальше основной массы данных в любом направлении, в соответствии с установленным правилом.

plt.boxplot(df.nominal, vert=False, patch_artist=True)
plt.title("Nominal GDP per Capita 2017 in USD.")
plt.show()
Python Описательная статистика boxplot ВВП 2017

Теперь, когда у нас есть boxplot, становится довольно легко сделать некоторые первоначальные выводы о данных. Например, мы видим, что данные положительно искажены. Если вы еще не поняли, что это значит, просто обратите внимание, что изображение не симметрично относительно медианного значения (значение 50% из приведенной выше таблицы), и подумайте, что это может рассказать нам о данных. Мы рассмотрим перекос в другом уроке. Мы также видим, что существует значительное количество выбросов.

Теперь, когда у вас есть блок-схема данных и вы понимаете, что представляют собой различные компоненты, хорошенько подумайте о том, что она говорит вам о мировом ВВП. Не менее важно учитывать то, о чем он вам не говорит. Я призываю вас быть осторожными в своих выводах, как общий операционный принцип, особенно если вы новичок в науке о данных, но также и по мере того, как вы становитесь более опытными. Чрезмерная самоуверенность может быть серьезной проблемой в этой области, и важно понимать пределы допустимого вывода.

Этот урок показал вам, как создать блок-схему и создать описательную статистику для некоторых реальных данных с помощью Python. Надеюсь, вам это показалось интересным и полезным.

Счастливых вычислений!

Сообщение, первоначально опубликованное на Блог академии Компу 21 февраля 2021 года.