Время прочтения: 4 мин.

Для демонстрации визуализации данных при помощи библиотеки Seaborn будем использовать таблицу bank.csv, взятую из открытых источников, и доработанную мной для демонстрации возможностей нашей библиотеки.

Рассмотрим решение некоторых задач при помощи Seaborn:

  1. Импортируем нужные библиотеки:
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns

2. При помощи библиотеки Pandas открываем нужную таблицу

bank_data = pd.read_csv('C:/bank.csv',delimiter=',')
bank_data.head(S)

3. Количество записей и столбцов можно узнать при помощи функции »shape» из Pandas. В представленных банковских данных 4521 строка и 17 столбцов

bank_data.shape

4. При помощи функции »describe», все из той же Pandas, можно получить подробную информацию о столбцах, таких как: количество, среднее, минимальное и максимальное значения

bank_data.describe()

Из результатов, полученных при помощи оговоренной ранее функции, можно сделать ряд выводов:

  • минимальный возраст равен 19 лет, максимальный 87 лет, а средний возраст клиентов составляет 41 год;
  • минимальный баланс составляет -3313, максимальный 71188, а средний 1422,66;
  • максимальная продолжительность взаимодействия с клиентом длилась 3025 секунд, а минимальное время равняется 4 секундам;
  • в рамках одного договора максимальное взаимодействие с клиентом равно 50, минимальное 1.

Далее будем визуализировать имеющиеся данные, а также рассмотрим, как некоторые столбцы соотносятся с целевым столбцом.

  1. Соотношение баланса и взятых кредитов, среди клиентов с балансом от 0 до 1400,  больше тех, кто не подали заявку на кредит, чем тех, кто это сделал
sns.set_style('whitegrid')
plt.figure(figsize = (14,7))
sns.barplot(bank_data['loan'], y = bank_data['balance'])

2. Из следующей диаграммы можно понять, что больше клиентов заключили договор на кредит, при этом с ними связывались 3 раза.

sns.set_style('whitegrid')
plt.figure(figsize = (14,7))
sns.barplot(x = bank_data['loan'], y = bank_data['campaign'])

Теперь рассмотрим работу с данными, которые представляют из себя категории, для большего понимания они приведены ниже.

  1. Из диаграмм, приведенных ниже, можно сделать вывод, что люди, занимающие руководящие должности,  заключили договор на кредит в большем количестве  относительно остальных.
sns.set_style('whitegrid')
plt.figure(figsize = (14,7))
sns.countplot(bank_data['job'])

2. Из диаграммы, приведенной далее, можно сделать вывод, что среди заключивших договор на кредит больше людей состоящих в браке, чем одиноких или с неизвестным семейным положением.

sns.set_style('whitegrid')
plt.figure(figsize = (14,7))
sns.countplot(bank_data['marital'])

3. В кредитовании в большей степени участвовали люди со средним образованием

sns.set_style('whitegrid')
plt.figure(figsize = (14, 7))
sns.countplot(bank_data['educationl'])

4. Большинство клиентов уже брали ипотечный кредит

sns.set_style('whitegrid')
plt.figure(figsize = (14, 7))
sns.countplot(bank_data['housing'])

5. Большая часть клиентов не брали потребительский кредит

sns.set_style('whitegrid')
plt.figure(figsize = (14, 7))
sns.countplot(bank_data['loan'])

6. Так же для визуализации числовых данных можно использовать тепловую карту, для того чтобы продемонстрировать корреляцию.

plt.figure(figsize = (14,7))
cor = bank_data.corr()
sns.heatmap(cor, annot=True)
plt.show

Подводя итог по кредитным договорам, также можно сделать вывод, что банк потерял прибыль, потому что из 4521 записи на кредит согласились только 691 человек. Этот вывод можно сделать, используя функцию ниже.

(bank_data['loan'] == "yes").sum()

При помощи использования Seaborn, а также вспомогательных функций из других библиотек, вы можете визуализировать данные как вам угодно, я лишь показал самые простые варианты. С более интересными и сложными диаграммами вы можете ознакомиться в официальной документации.