Python, Визуализация, Графики

Визуализация Pandas фреймов

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

Для визуализации pandas датафреймов удобно использовать библиотеку matplotlib. Pandas позволяет быстро и эффективно работать с данными. С matplotlib легко отобразить таблицы в виде графиков.

Покажу, какими методами визуализации я пользовалась при участии в соревновании Kaggle. Набор данных представлял из себя онлайн-объявления, с целевой меткой «deal_probability» (вероятность сделки).

С помощью функции pandas.plotting.scatter_matrix() построена матрица рассеивания для числовых столбцов (цена, спрос, порядковый номер объявления у пользователя) и получен график:

Матрица рассеивания состоит из диаграмм, которые отображают отношение между двумя переменными в виде точек в двух измерениях, по одной оси для каждого атрибута. На диагонали показаны гистограммы каждого атрибута.

Из графика можно сделать следующие выводы:

  • есть много дешевых предметов;
  • вероятность сделки уменьшается, если пользователи публикуют больше объявлений;
  • предметы с низкой ценой имеют более высокую вероятность сделки;
  • существует небольшая корреляция между более низкой ценой и количеством товаров, которые публикует пользователь

Чтобы рассмотреть, как распределены объявления по категориям и как колеблется среднее целевой переменой, применены функции groupby() и agg().

import pandas as pd
import matplotlib.pyplot as plt

column_name = 'user_type'
df = pd.read_csv('data.csv')[[column_name, 'deal_probability']]
df['group_count'] = ""

groupDf = df.groupby([column_name]).agg({'deal_probability': 'mean', 'group_count': 'count'}).reset_index()
ax = groupDf.plot.bar(column_name, 'group_count', legend=False)
groupDf['deal_probability'].plot(secondary_y=True, ax=ax)
for tick in ax.get_xticklabels():
    tick.set_rotation(90)
plt.show()

Из рисунков видно, что больше всего объявлений по категории «Личные вещи, а самый встречающийся тип пользователя «Private».

Больше методов визуализации pandas на сайте.

Советуем почитать