🐼 Π‘ΡŽΠΆΠ΅Ρ‚ с ΠΏΠ°Π½Π΄Π°ΠΌΠΈ: визуализация Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Python для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Π”Π°ΠΆΠ΅ Ссли вашС ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅ вмСстС с Python ΠΈ Pandas Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡Π°Π»ΠΎΡΡŒ, стоит Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ plot ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π½Π° ΠΏΡƒΡ‚ΠΈ ΠΊ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ публикуСтся с сокращСниями, Π°Π²Ρ‚ΠΎΡ€ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ Reka Horvath.

НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ с датасСтом ΠΈΠ»ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅ΡΡŒ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, визуализация являСтся Π²Π°ΠΆΠ½Ρ‹ΠΌ инструмСнтом. ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Pandas прСдоставляСт нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ .plot().

Настройка срСды

Π§Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠΌ ΡΡ‚Π°Ρ‚ΡŒΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Jupyter Notebook – Π²Ρ‹ сразу ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ свои Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈ смоТСтС ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ.

Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ понадобится рабочая срСда Python вмСстС с Pandas. Если ΠΎΠ½Π° Π΅Ρ‰Π΅ Π½Π΅ установлСна, Π΅ΡΡ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, ΠΊΠ°ΠΊ это ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ:

  • Если Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Π°Π»Π΅ΠΊΠΎΠΈΠ΄ΡƒΡ‰ΠΈΠ΅ ΠΏΠ»Π°Π½Ρ‹, скачайтС дистрибутив Anaconda. Он вСсит ~500 ΠœΠ‘, Π½ΠΎ Π² Π½Π΅Π³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ практичСски всС, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для DS.
  • Если ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ установку – ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Minicond-ΠΎΠΉ.
  • Если Π»ΡŽΠ±ΠΈΡ‚Π΅ pip, Ρ‚ΠΎ установитС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pip install pandas matplotlib ΠΈ Jupyter с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pip install jupyterlab.
  • Если ΠΆΠ΅ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ Π»ΠΈΡˆΠ½ΠΈΡ… Ρ‚Π΅Π»ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ Jupyter ΠΎΠ½Π»Π°ΠΉΠ½.

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅ рСсурса: Economic Guide To Picking A College Major. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ настроитС срСду, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² URL-адрСс Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² pandas.read_csv():

In [1]: import pandas as pd

In [2]: download_url = (
   ...:     "https://raw.githubusercontent.com/fivethirtyeight/"
   ...:     "data/master/college-majors/recent-grads.csv"
   ...: )

In [3]: df = pd.read_csv(download_url)

In [4]: type(df)
Out[4]: pandas.core.frame.DataFrame

Вызывая read_csv(), Π²Ρ‹ создадитС DataFrame – ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ структуру Π΄Π°Π½Π½Ρ‹Ρ… Π² Pandas.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π΅ΡΡ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠΎΠΆΠ½ΠΎ Π΅Π³ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ. Настроим ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ display.max.columns, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Pandas Π½Π΅ скрываСт Π½ΠΈΠΊΠ°ΠΊΠΈΡ… столбцов. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ нСсколько строк Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ .head():

In [5]: pd.set_option("display.max.columns", None)

In [6]: df.head()

Π’Ρ‹Π²ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ функция .head() ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΏΡΡ‚ΡŒ строк, Π½ΠΎ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° указываСтся любоС ΠΈΡ… количСство. НапримСр, для отобраТСния ΠΏΠ΅Ρ€Π²Ρ‹Ρ… дСсяти ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ df.head(10).

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°

Набор Π΄Π°Π½Π½Ρ‹Ρ… содСрТит нСсколько столбцов:

  • Median – срСдний Π·Π°Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»Π½Ρ‹ΠΉ дСнь ΠΊΡ€ΡƒΠ³Π»Ρ‹ΠΉ Π³ΠΎΠ΄.
  • P25th – 25-ΠΉ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈΠ»ΡŒ Π΄ΠΎΡ…ΠΎΠ΄Π°.
  • P75th – 75-ΠΉ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈΠ»ΡŒ Π΄ΠΎΡ…ΠΎΠ΄Π°.
  • Rank – Ρ€Π°Π½Π³ ΠΏΠΎ срСднСму Π·Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.

НачнСм с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ эти столбцы Π³Ρ€Π°Ρ„ΠΈΠΊΠ°. Настроим Jupyter с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ волшСбной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ %matplotlib:

In [7]: %matplotlib
Using matplotlib backend: MacOSX

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° сообщаСт Jupyter, Ρ‡Ρ‚ΠΎ Π΄Π°Π»Π΅Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Matplotlib.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π±Π΅ΠΊΠ΅Π½Π΄ Matplotlib ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅ %matplotlib. ВстроСнный (inline) Π±Π΅ΠΊΠ΅Π½Π΄ популярСн для Jupyter Notebooks, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π³Ρ€Π°Ρ„ΠΈΠΊ Π² самом Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅, нСпосрСдствСнно ΠΏΠΎΠ΄ ячСйкой, которая Π΅Π³ΠΎ создаСт:

In [7]: %matplotlib inline

ΠžΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ доступными Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π° страницС IPython.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ создадим Π³Ρ€Π°Ρ„ΠΈΠΊ:

In [8]: df.plot(x="Rank", y=["P25th", "Median", "P75th"])
Out[8]: <AxesSubplot:xlabel='Rank'>

.plot() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊ, содСрТащий Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π² DataFrame. По оси X выводится Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ ΡƒΡ‡Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ, Π° значСния ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π½Π° оси Y.

Если Π²Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Jupyter Notebook ΠΈΠ»ΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ IPython, Π²ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ интСрфСйс pyplot ΠΈΠ· matplotlib для отобраТСния Π³Ρ€Π°Ρ„ΠΈΠΊΠ°.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π² стандартной ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ Python (для Π²Ρ‹Π·ΠΎΠ²Π° plt.show() ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ pyplot ΠΈΠ· Matplotlib):

>>> import matplotlib.pyplot as plt
>>> df.plot(x="Rank", y=["P25th", "Median", "P75th"])
>>> plt.show()

Глядя Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ наблюдСния:

  • Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ Π΄ΠΎΡ…ΠΎΠ΄ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ с ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ΠΌ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π°. Π­Ρ‚ΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ опрСдСляСтся ΠΌΠ΅Π΄ΠΈΠ°Π½Π½Ρ‹ΠΌ Π΄ΠΎΡ…ΠΎΠ΄ΠΎΠΌ.
  • НСкоторыС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ большиС ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ 25-ΠΌ ΠΈ 75-ΠΌ процСнтилями. Π›ΡŽΠ΄ΠΈ с Ρ‚Π°ΠΊΠΈΠΌΠΈ стСпСнями ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мСньшС ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большС, Ρ‡Π΅ΠΌ срСдний Π΄ΠΎΡ…ΠΎΠ΄.
  • Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ нСбольшиС ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ 25-ΠΌ ΠΈ 75-ΠΌ процСнтилями. Π›ΡŽΠ΄ΠΈ с Ρ‚Π°ΠΊΠΈΠΌΠΈ стСпСнями ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Ρƒ, ΠΎΡ‡Π΅Π½ΡŒ Π±Π»ΠΈΠ·ΠΊΡƒΡŽ ΠΊ срСднСму Π΄ΠΎΡ…ΠΎΠ΄Ρƒ.

НСкоторыС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ – довольно ΡƒΠ·ΠΊΠΈΠΉ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти различия, Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ².

.plot() ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° создаСтся:

  • Β«areaΒ» – Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ области;
  • Β«barΒ» – Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ;
  • Β«barhΒ» – Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ;
  • Β«boxΒ» – ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊ;
  • Β«hexbinΒ» – hexbin участки;
  • Β«histΒ» – гистограммы;
  • Β«kdeΒ» – ΠΎΡ†Π΅Π½ΠΊΠ° плотности ядра;
  • Β«densityΒ» – псСвдоним для Β«kdeΒ»;
  • Β«lineΒ» – Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ;
  • Β«pieΒ» – ΠΊΡ€ΡƒΠ³ΠΎΠ²Ρ‹Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹;
  • Β«scatterΒ» – Ρ‚ΠΎΡ‡Π΅Ρ‡Π½Ρ‹Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ – Β«lineΒ». Π›ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ Π²Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. Если Π½Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ .plot(), ΠΎΠ½Π° создаст Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊ с индСксом ΠΏΠΎ оси X ΠΈ всСми числовыми столбцами ΠΏΠΎ оси Y. Π₯отя это ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… с нСсколькими столбцами, для нашСго датасСта ΠΈ Π΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… числовых столбцов ΠΎΠ½ΠΎ выглядит Π½Π΅Π±Ρ€Π΅ΠΆΠ½ΠΎ.

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ строк ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ kind Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ .plot(), ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ DataFrame ΠΈΠΌΠ΅ΡŽΡ‚ нСсколько ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ²:

По возмоТности ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² дСйствии.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ создали Π³Ρ€Π°Ρ„ΠΈΠΊ, рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ .plot().

Π§Ρ‚ΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ: Matplotlib

Когда Π²Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ .plot() для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° DataFrame, Matplotlib создаСт Π³Ρ€Π°Ρ„ΠΈΠΊ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² этом, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ двумя Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΊΠΎΠ΄Π°. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Matplotlib, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Π²Π° столбца DataFrame:

In [9]: import matplotlib.pyplot as plt

In [10]: plt.plot(df["Rank"], df["P75th"])
Out[10]: [<matplotlib.lines.Line2D at 0x7f859928fbb0>]

Π‘Π½Π°Ρ‡Π°Π»Π° импортируСтся ΠΌΠΎΠ΄ΡƒΠ»ΡŒ matplotlib.pyplot ΠΈ пСрСимСновываСтся Π² plt. Π—Π°Ρ‚Π΅ΠΌ вызываСтся plot() ΠΈ пСрСдаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Β«RankΒ» Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΈ Β«P75thΒ» Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получаСтся Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ строит 75-ΠΉ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈΠ»ΡŒ ΠΏΠΎ оси Y ΠΈ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ ΠΏΠΎ оси X:

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ DataFrame:

In [11]: df.plot(x="Rank", y="P75th")
Out[11]: <AxesSubplot:xlabel='Rank'>

.plot() – это ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° для pyplot.plot(). На Π²Ρ‹Ρ…ΠΎΠ΄Π΅ получаСтся Π³Ρ€Π°Ρ„ΠΈΠΊ, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ Ρ‚ΠΎΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ создали Π½Π° Matplotlib:

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ pyplot.plot(), Ρ‚Π°ΠΊ ΠΈ df.plot() для создания ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°. Однако Ссли Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ экзСмпляр DataFrame, Ρ‚ΠΎ df.plot() ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ чистый синтаксис.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ приступим ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² ΠΈ способов ΠΈΡ… создания.

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π΄Π°Π΄ΡƒΡ‚ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ столбца Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‹ рассмотритС распрСдСлСниС свойств Π½Π° гистограммС ΠΈ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с инструмСнтами для изучСния ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

РаспрСдСлСния ΠΈ гистограммы

DataFrame – Π½Π΅ СдинствСнный класс Π² pandas с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ .plot(). ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Series прСдоставляСт Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ столбСц DataFrame ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Series. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования столбца Β«MedianΒ»:

In [12]: median_column = df["Median"]

In [13]: type(median_column)
Out[13]: pandas.core.series.Series

Гистограммы – это Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ способ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ распрСдСлСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ Π½Π°Π±ΠΎΡ€Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. Они Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ значСния Π² ячСйки ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ количСство Ρ‚ΠΎΡ‡Π΅ΠΊ Π΄Π°Π½Π½Ρ‹Ρ…, значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… находятся Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ячСйкС.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ гистограмму для столбца Β«MedianΒ»:

In [14]: median_column.plot(kind="hist")
Out[14]: <AxesSubplot:ylabel='Frequency'>

ВызываСтся функция .plot() Π² median_column ΠΈ пСрСдаСтся строк Π² Β«histΒ» ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ kind. На Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Гистограмма ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅, сгруппированныС Π² Π΄Π΅ΡΡΡ‚ΡŒ ячССк Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ $20 000 Π΄ΠΎ $120 000 с шагом Π² $10 000.

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Π’ ΠΏΡ€Π°Π²ΠΎΠΉ части Π³Ρ€Π°Ρ„ΠΈΠΊΠ° виднССтся малСнькая ячСйка – спСциалисты Π² этой области ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Ρƒ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ со всСми катСгориями. Π₯отя это Π½Π΅ основная Ρ†Π΅Π»ΡŒ, гистограмма ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π˜ΡΡΠ»Π΅Π΄ΡƒΠ΅ΠΌ эту ΡˆΡ‚ΡƒΠΊΡƒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅:

  • ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ прСдставляСт это ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅?
  • Π³Π΄Π΅ Π΅Π³ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Π°?

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ нСсколько Ρ‚ΠΎΡ‡Π΅ΠΊ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½ΠΈΡ…. Для этого Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊ являСтся ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ инструмСнтом. Π’Ρ‹Π±Π΅Ρ€Π΅ΠΌ ΠΏΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ с самым высоким срСдним Π΄ΠΎΡ…ΠΎΠ΄ΠΎΠΌ. НСобходимо Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π²Π° шага:

  1. Для сортировки ΠΏΠΎ столбцу Β«MedianΒ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ .sort_values() ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ имя столбца, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ascending=False.
  2. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡΡ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² списка, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ .head().

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²Ρ‹ΠΉ DataFrame top_5:

In [15]: top_5 = df.sort_values(by="Median", ascending=False).head()

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ гистограмму, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ основныС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, учитывая ВОП-5 Π·Π°Ρ€ΠΏΠ»Π°Ρ‚:

In [16]: top_5.plot(x="Major", y="Median", kind="bar", rot=5, fontsize=4)
Out[16]: <AxesSubplot:xlabel='Major'>

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ rot ΠΈ fontsize для ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° ΠΈ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΌΠ΅Ρ‚ΠΎΠΊ оси X, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Π²ΠΈΠ΄Π½Ρ‹:

Π­Ρ‚ΠΎΡ‚ Π³Ρ€Π°Ρ„ΠΈΠΊ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ срСдняя Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Π° спСциалистов Π½Π΅Ρ„Ρ‚Π΅Π³Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ направлСния Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π½Π° $20 000 Π²Ρ‹ΡˆΠ΅ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…. Π—Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π°Π½ΡΠ²ΡˆΠΈΡ… 2-4 мСста ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±Π»ΠΈΠ·ΠΊΠΈ Π΄Ρ€ΡƒΠ³ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ.

Если Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… с Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ высокими/Π½ΠΈΠ·ΠΊΠΈΠΌΠΈ значСниями, Ρ‡Π΅ΠΌ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ: ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ столбцы, содСрТащиС связанныС Π΄Π°Π½Π½Ρ‹Π΅.

Рассмотрим всС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, срСдняя Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ $60 000. ΠžΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅ΠΌ ΠΈΡ… ΠΏΠΎ маскС df[df["Median"] > 60000] ΠΈ создадим Π³Ρ€Π°Ρ„ΠΈΠΊ с трСмя столбцами:

In [17]: top_medians = df[df["Median"] > 60000].sort_values("Median")

In [18]: top_medians.plot(x="Major", y=["P25th", "Median", "P75th"], kind="bar")
Out[18]: <AxesSubplot:xlabel='Major'>

25-ΠΉ ΠΈ 75-ΠΉ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ нСфтяники самыС высокооплачиваСмыС Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠΈ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‚Π°ΠΊ Π²Π°ΠΆΠ½Ρ‹? Если Π²Ρ‹ студСнт – всС ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ интСрСсны с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π°Π½Π°Π»ΠΈΠ·Π°. НСвСрныС Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Ρ‹ ошибками ΠΈΠ»ΠΈ ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡΠΌΠΈ.

ΠšΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡ

Часто трСбуСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, связаны Π»ΠΈ столбцы Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, связан Π»ΠΈ высокий ΠΎΠΊΠ»Π°Π΄ с Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π’ качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ шага создайтС Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΡƒΡŽ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ с этими столбцами:

In [19]: df.plot(x="Median", y="Unemployment_rate", kind="scatter")
Out[19]: <AxesSubplot:xlabel='Median', ylabel='Unemployment_rate'>

МоТно Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ сущСствСнной коррСляции ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄ΠΎΡ…ΠΎΠ΄Π°ΠΌΠΈ ΠΈ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Π±Π΅Π·Ρ€Π°Π±ΠΎΡ‚ΠΈΡ†Ρ‹ Π½Π΅Ρ‚.

Π₯отя точСчная Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° являСтся ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ инструмСнтом для получСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ впСчатлСния ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ коррСляции, ΠΎΠ½Π° Π½Π΅ являСтся ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎΠΌ связи – для этого ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ функция .corr().

Однако ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Ссли сущСствуСт коррСляция ΠΌΠ΅ΠΆΠ΄Ρƒ двумя значСниями, Π½Π΅ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ измСнСнию Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ.

Анализ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ большиС куски ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ ΠΏΠΎ катСгориям. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ познакомимся с инструмСнтами для ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΅Π΅ валидности.

МногиС Π½Π°Π±ΠΎΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠΆΠ΅ содСрТат ΡΠ²Π½ΡƒΡŽ ΠΈΠ»ΠΈ Π½Π΅ΡΠ²Π½ΡƒΡŽ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ – Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 173 ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ Π½Π° 16 ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ.

Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ°

ОсновноС использованиС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ – Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ .groupby() для опрСдСлСния популярности ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ Π² основном датасСтС:

In [20]: cat_totals = df.groupby("Major_category")["Total"].sum().sort_values()

In [21]: cat_totals
Out[21]:
Major_category
Interdisciplinary                        12296.0
Agriculture & Natural Resources          75620.0
Law & Public Policy                     179107.0
Physical Sciences                       185479.0
Industrial Arts & Consumer Services     229792.0
Computers & Mathematics                 299008.0
Arts                                    357130.0
Communications & Journalism             392601.0
Biology & Life Science                  453862.0
Health                                  463230.0
Psychology & Social Work                481007.0
Social Science                          529966.0
Engineering                             537583.0
Education                               559129.0
Humanities & Liberal Arts               713468.0
Business                               1302376.0
Name: Total, dtype: float64

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ .groupby() создадим ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ DataFrameGroupBy. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ .sum() ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Series.

НарисуСм Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ со значСниями cat_totals:

In [22]: cat_totals.plot(kind="barh", fontsize=4)
Out[22]: <AxesSubplot:ylabel='Major_category'>

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ коэффициСнтов

Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, пригодятся ΠΊΡ€ΡƒΠ³ΠΎΠ²Ρ‹Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ cat_totals содСрТит нСсколько ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, созданиС ΠΊΡ€ΡƒΠ³ΠΎΠ²ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cat_totals.plot(kind="pie") ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ появлСнию ΠΊΡ€ΠΎΡˆΠ΅Ρ‡Π½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² с ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, слСдуСт ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π² ΠΎΠ΄Π½Ρƒ Π³Ρ€ΡƒΠΏΠΏΡƒ. НапримСр, ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ с ΠΎΠ±Ρ‰ΠΈΠΌ числом ΠΌΠ΅Π½Π΅Π΅ 100 000 Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ Β«Π”Ρ€ΡƒΠ³ΠΎΠ΅Β». Π’Π΅ΠΏΠ΅Ρ€ΡŒ создадим ΠΊΡ€ΡƒΠ³ΠΎΠ²ΡƒΡŽ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ:

In [23]: small_cat_totals = cat_totals[cat_totals < 100_000]

In [24]: big_cat_totals = cat_totals[cat_totals > 100_000]

In [25]: # Adding a new item "Other" with the sum of the small categories

In [26]: small_sums = pd.Series([small_cat_totals.sum()], index=["Other"])

In [27]: big_cat_totals = big_cat_totals.append(small_sums)

In [28]: big_cat_totals.plot(kind="pie", label="")
Out[28]: <AxesSubplot:>

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ использовали label="". По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Pandas добавляСт ΠΌΠ΅Ρ‚ΠΊΡƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ столбца. Π­Ρ‚ΠΎ часто ΠΈΠΌΠ΅Π΅Ρ‚ смысл, Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ. На Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π­Ρ‚ΠΎΡ‚ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π½Π° ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ процСсса Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Pandas.

Из Π½Π΅Π³ΠΎ Π²Ρ‹ ΡƒΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мноТСство Π²Π΅Ρ‰Π΅ΠΉ:

  • ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ распрСдСлСниС вашСго Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ гистограммы;
  • произвСсти ΠΊΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡŽ с Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎΠΉ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠΎΠΉ;
  • Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ с гистограммами ΠΈ ΠΈΡ… ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΠΌΠΈ с ΠΊΡ€ΡƒΠ³ΠΎΠ²Ρ‹ΠΌΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ;
  • ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊ большС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ;
  • ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ .plot() ΠΈ нСбольшой DataFrame, эффСктивно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π²Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ….

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эти знания, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ для сСбя Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ интСрСсныС Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π£Π΄Π°Ρ‡ΠΈ!

***

На Python ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Π΅ прилоТСния, ΠΏΠΈΡˆΡƒΡ‚ тСсты ΠΈ бэкСнд Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ Π² систСмном администрировании, Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π² Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтях ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. Π―Π·Ρ‹ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ Π½Π° это придСтся ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ°Π»ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ быстро ΠΏΠΎΠ½ΡΡ‚ΡŒ основы программирования Π½Π° Python, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΠ½Π»Π°ΠΉΠ½-курс Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ программиста». Π—Π° 30 ΡƒΡ€ΠΎΠΊΠΎΠ² (15 тСорСтичСских ΠΈ 15 практичСских занятий) ΠΏΠΎΠ΄ руководством ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΡŽΡ‰ΠΈΡ… экспСртов Π²Ρ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ основы синтаксиса, Π½ΠΎ ΠΈ освоитС Π΄Π²Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (PyCharm ΠΈ Jupyter Notebook), Ρ€Π°Π±ΠΎΡ‚Ρƒ со словарями, парсинг Π²Π΅Π±-страниц, созданиС Π±ΠΎΡ‚ΠΎΠ² для Telegram ΠΈ Instagram, тСстированиС ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°ΠΆΠ΅ Π°Π½Π°Π»ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ…. Π§Ρ‚ΠΎΠ±Ρ‹ процСсс обучСния стал Π±ΠΎΠ»Π΅Π΅ интСрСсным ΠΈ ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½Ρ‹ΠΌ, студСнты ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ ΠΎΡ‚ нас ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь. ΠšΡƒΡ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΠΈ курса отвСтят Π½Π° всС вопросы ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΈ практичСских занятий.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста
16 ноября 2019

DeepFake-Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»: создаСм собствСнный Π΄ΠΈΠΏΡ„Π΅ΠΉΠΊ Π² DeepFaceLab

РассказываСм ΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ DeepFake ΠΈ шаг Π·Π° шагом учимся Π΄Π΅Π»Π°Ρ‚ΡŒ Π΄ΠΈΠΏΡ„Π΅ΠΉΠΊΠΈ Π² ...
admin
11 дСкабря 2018

ООП Π½Π° Python: ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python допускаСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½ΠΎ Π² Π΅Π³ΠΎ основС...
admin
14 июля 2017

ПишСм свою Π½Π΅ΠΉΡ€ΠΎΡΠ΅Ρ‚ΡŒ: пошаговоС руководство

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ ΠΏΡ€ΠΎ Π½Π΅ΠΉΡ€ΠΎΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΊ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΈΠ· ΠΊΠ°ΠΊΠΈΡ… элСмС...