Автор оригинала: Robin Andrews.
Единственный способ получить квалификацию в работе с данными осуществляется через опыт. Теория может быть важной, но если у вас нет приличного количества практического опыта, оно останется абстрактным, и вы будете единорусны справиться с видами вопросов, которые представляют себя, когда вы работаете с реальными данными практическим путем. Отказ Целью этих уроков является предоставление автономных сценариев, где вы можете разработать навыки науки о данных, используя реальные данные и программирование Python.
Задание:
Отображение BoxPlot для набора данных, содержащего GDP World Per на душу населения для 2017 года
Источник данных: https://www.worldometers.info/gdp/gdp-per-capita/
ВВП на душу населения
Валовой внутренний продукт (ВВП) на душу населения показывает ВВП страны, разделенный на общее количество населения. Набор данных, используемый в этом уроке списки номинального ВВП на душу населения по стране. Он также включает в себя данные для покупки паритета мощности (PPP) на душу населения, но мы не будем использовать его здесь.
Файл данных Доступен здесь: World_gdp_data_2017.
Код в этом уроке был написан в ноутбуке Jupter. Это означает, что его можно подключить последовательно использовать iPython. Если вы хотите использовать неинтерактивный Python, вы можете создать .py Файл и запустить его, как вы обычно, пропуская любые специальные директивы, такие как % load_ext nb_black Отказ Вам также может потребоваться добавить Печать заявления в некоторых ситуациях для получения вывода.
Создание описательной статистики для ВВП на душу населения с 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 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 |
Это будет трудно работать со значениями в Номинал столбец, как они строки:
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
Теперь, когда у нас есть числовые значения для номинального ВВП, мы можем использовать различные методы для анализа и представляют данные. Мощный метод Pandas для расчета описательной статистики это Опишите () :
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: Насколько широко распространены значения?
- Мин: минимальное значение.
- 25%: стоимость под чем 25% данных падает.
- 50%: стоимость под какими 50% данных падает (медиана).
- 75%: стоимость под какими 75% данных падает.
- Макс: максимальное значение.
BoxPlot для ВВП на душу населения
Мы можем создать визуальное представление данных с использованием различных типов графика. А boxplot Это отличный способ получить ощущение того, как распределены данные, и обеспечивает простой способ понять некоторые важные свойства. Вертикальные линии, слева направо, соответствуют следующим значениям из описательной статистики выше: мин , 25% , 50% , 75% , Макс Отказ По умолчанию Матплотлиб Также показывает Выбросы Отказ Это точки данных, которые значительно лежат за пределами объема данных в любом направлении, в соответствии с установленным правилом.
plt.boxplot(df.nominal, vert=False, patch_artist=True)
plt.title("Nominal GDP per Capita 2017 in USD.")
plt.show()
Теперь, когда у нас есть BoxPlot, становится довольно легко сделать некоторые первоначальные выводы о данных. Например, мы видим, что данные положительно перекошены. Если вы еще не узнали, что это значит, просто соблюдайте, что изображение не является симметричным о средней цене (50% -ное значение из таблицы выше), и считают, что это может рассказать нам о данных. Мы посмотрим на перекос в другом уроке. Мы также можем увидеть, что существует значительное количество выбросов.
Теперь, когда у вас есть коробка данных и понимание того, что представляют различные компоненты, хорошо подумайте о том, что он говорит вам о мире ВВП. Не менее важно, считайте, что он не говорит вам. Я рекомендую вам быть предварительным в своих выходах, как общий операционный принцип, особенно если вы новичок в науке данных, но и как вы становитесь более опытными. Overconfensidence может быть серьезной проблемой в этой области, и важно понимать ограничения действительного вывода.
Этот урок показал, как создать BoxPlot и производить описательную статистику для некоторых реальных данных, используя Python. Я надеюсь, что вы нашли это интересно и полезно.
Счастливые вычисления!