Візуалізація даних за допомогою Pandas PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Візуалізація даних за допомогою Pandas

Pandas досі допомагав нам на етапі попередньої обробки даних. Хоча в одному випадку під час створення гістограм ми також використали інший модуль від Pandas – plotting.

Поки що ми цілеспрямовано уникали цього, тому що його введення раніше викликало б більше питань, ніж відповідей. А саме панди та Matplotlib був настільки звичним і всюдисущим дуетом, що Pandas почав інтегрувати функціональність Matplotlib. Це сильно покладається на Matplotlib для виконання будь-яких фактичних графіків, і ви знайдете багато функцій Matplotlib, загорнутих у вихідний код. Крім того, ви можете використовувати інші серверні модулі для малювання, наприклад Сюжетно та Боке.

Однак Pandas також знайомить нас з парою сюжетів, які НЕ частина стандартних типів графіків Matplotlib, таких як KDE, Криві Ендрюса, Сюжети Bootstrap та Матриці розкиду.

Команда plot() функція панди DataFrame використовує серверну частину, визначену plotting.backend, і в залежності від kind аргумент – генерує діаграму з використанням заданої бібліотеки. Оскільки багато з них збігаються, немає сенсу розглядати такі типи сюжетів, як line, bar, hist та scatter. Вони створюватимуть приблизно такі ж графіки з тим самим кодом, що ми робили досі з Matplotlib.

Ми лише коротко розглянемо plot() функції, оскільки основний механізм досі досліджено. Натомість зосередимося на деяких сюжетах, які ми не може вже легко робити з Matplotlib.

Це буде дуже короткий розділ, оскільки можливості Pandas для малювання та візуалізації бліднуть у порівнянні з Matplotlib – але все одно корисно знати про деякі з них, а також знати про можливість будувати графіки з DataFrames безпосередньо.

Команда DataFrame.plot() функція

Команда plot() функція приймає x та y особливості та a kind аргумент. Крім того, щоб уникнути kind аргумент, ви також можете викликати DataFrame.plot.kind() натомість і передайте в x та y особливості.

Прийняті значення для kind аргументами є: line, bar, barh (горизонтальна смуга), hist, box, kde, density (синонім до kde), area, pie, scatter та hexbin (схоже на Heatmap).

import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] df_eu.plot.bar(x = 'Year', y = 'Value')
df_eu.plot.line(x = 'Year', y = 'Value')
df_eu.plot.box(x='Value') plt.show()

Замість надання Series екземпляри, як ми робимо для Matplotlib – достатньо надати імена стовпців, а оскільки ви телефонуєте plot() функція на DataFrame ви візуалізуєте, Pandas легко зіставити ці рядкові значення з відповідними назвами стовпців.

Кожен із цих викликів створює новий Figure екземпляр і наносить на нього відповідні значення:

Візуалізація даних за допомогою Pandas PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Щоб нанести кілька осей на одну Figure, ви можете зробити a Figure і один або кілька Axes через plt.subplots() і призначити відповідні Axes до ax аргумент кожного plot.plot_type() дзвінок:

import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] fig, ax = plt.subplots(3, 1) df_eu.plot.box(x='Value', ax = ax[0])
df_eu.plot.line(x = 'Year', y = 'Value', ax = ax[1])
df_eu.plot.bar(x = 'Year', y = 'Value', rot = 45, ax = ax[2]) plt.show()

Деякі стандартні аргументи, такі як rotation аргументи насправді відрізняються в plot() дзвінки. Наприклад, rotation скорочується до rot. Це робить його трохи складним просто переключіться між Matplotlib і Pandas, оскільки ви, швидше за все, потрапите на сторінки документації, просто перевіряючи, які аргументи можна застосувати, а які ні.

Тепер замість створення нового Figure or Axes наприклад, кожна з цих ділянок буде розміщена у відповідній Axes примірники, якими ми їх забезпечили:

Візуалізація даних за допомогою Pandas PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Загалом малювання за допомогою Pandas є зручним і швидким, але навіть у цьому випадку для побудови стовпчастих графіків, лінійних графіків і прямокутних графіків вам, ймовірно, захочеться скористатися Matplotlib. Це основний механізм, який неминуче використовує Pandas, а також має більше можливостей налаштування, і вам не доведеться запам’ятовувати новий набір аргументів, які ви можете використовувати з графіками Pandas.

З огляду на це, для деяких ділянок ви можете віддати перевагу Панди, оскільки їх потрібно було б створювати вручну в Matplotlib, і деякі з них є такими складними, що не варті зусиль, як-от рядки KDE.

панди складання графіків Модулі

Що DataFrameпропозиція щодо візуалізації не надто нова для нас. Однак основний модуль, який вони називають, pandas.plotting робить. The plotting модуль має кілька функцій, якими ми можемо скористатися, наприклад autocorrelation_plot(), bootstrap_plot() та scatter_matrix().

Кожен із них приймає або a Series або DataFrame, залежно від типу візуалізації, яку вони створюють, а також певні параметри для специфікації графіка та стилю.

Сюжет Bootstrap

Запуск завантаження це процес випадкової вибірки (із заміною) набору даних і обчислення показників точності, таких як зміщення, дисперсія та довірчі інтервали для випадкових зразків. Практично «із заміною» означає, що кожен навмання вибраний елемент можна вибрати знову. Без заміни означає, що після кожного випадково вибраного елемента він видаляється з пулу для наступного зразка.

A Сюжет Bootstrap, створений Pandas, завантажує середню, медіану та середню статистику набору даних на основі вибірки size, після чого сюжет згодом показується через plt.show(). Аргументи за замовчуванням для size та samples він має 50 та 500 відповідно.

Це означає, що для функції ми беремо вибірку 50 значення. Потім створюється підвибірка з 50 елементів (синтетичні дані) для цих 50 значень і для них обчислюється підсумкова статистика (середнє/медіана/середній діапазон). Цей процес повторюється 500 разів, тож у підсумку ми маємо 500 підсумкових статистичних даних:

import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('./datasets/gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] pd.plotting.bootstrap_plot(df_eu['Value']) plt.show()

Візуалізація даних за допомогою Pandas PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Графік автокореляції

Діаграми автокореляції використовуються для перевірки випадковості даних для даних часових рядів. множинний автокореляції обчислюються для різних часових позначок, і якщо дані справді випадкові – кореляція буде близькою до нуля. Якщо ні – кореляція буде більше нуля.

Давайте побудуємо два графіки автокореляції – один з нашим значення функція, і один з a Series заповнений випадковими значеннями:

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
# Filter DataFrame for the EU
df_eu = df.loc[df['Country Name'] == 'European Union']
# Generate 50 random integers between 0 and 100, and turn into a Series
random_series = pd.Series(np.random.randint(0, 100, size=50)) # Plot Autocorrelation Plot for the *Value* feature
pd.plotting.autocorrelation_plot(df_eu['Value'])
# Plot Autocorrelation Plot for the *random_series*
pd.plotting.autocorrelation_plot(random_series) plt.show()

Графік автокореляції для random_series має обертатися навколо 0, оскільки це випадкові дані, тоді як графік для Value функція не буде:

Візуалізація даних за допомогою Pandas PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Варто зазначити, що автокореляція вимірює один форма випадковості, оскільки існують некорельовані, але невипадкові дані. Якщо він невипадковий, але не має суттєвих кореляцій, графік автокореляції вказуватиме, що дані є випадковими.

Матриці розкиду

Матриці розкиду сюжет а сітка діаграм розсіювання для всіх об’єктів проти всіх об’єктів. Оскільки це неминуче порівнює кожну ознаку з собою, а також – з діагональ де це відбувається, зазвичай замінюється на a Гістограма цієї функції, а не точкову діаграму. Матриці розкиду також відомі як Парні сюжети, і Seaborn пропонує a pairplot() функція тільки для цього.

Команда scatter_matrix() функція приймає a DataFrame створює матрицю розсіювання для всіх її числових характеристик і повертає двовимірний масив Axes екземпляри, які складають матрицю розсіювання. Щоб щось налаштувати в них, ви захочете їх переглянути:

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt df = pd.read_csv('worldHappiness2019.csv') axes = pd.plotting.scatter_matrix(df, diagonal='hist') for ax in axes.flatten(): # Rotate back to 0 degrees since they're automatically rotated by 90 ax.yaxis.label.set_rotation(0) # As to not overlap with the Axes instances, set the ticklabel # alignment to 'right' ax.yaxis.label.set_ha('right') plt.show()

Це призводить до досить великої матриці розкиду всіх функцій проти всіх інших функцій:

Візуалізація даних за допомогою Pandas PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Ви також можете здати в diagonal аргумент, який приймає 'hist' or 'kde' щоб вказати, який тип діаграми розподілу ви бажаєте побудувати по діагоналі, а також alpha, вказуючи напівпрозорість маркерів на діаграмах розсіювання.

Часова мітка:

Більше від Stackabuse