Публичный аккаунт WeChat: «Python Reading Finance»
Если у вас есть какие-либо вопросы или предложения, пожалуйста, оставьте сообщение в публичном аккаунте
Пандыstyle
Использование редко встречается в большинстве руководств, в основном используется для украшенияDataFrame
иSeries
Вывод может отображать результаты данных более интуитивно.
Далее используется набор розничных данных магазина, чтобы представить реальные сценарии приложений.style
эти практические методы.
Сначала импортируйте соответствующие пакеты и наборы данных
import pandas as pd
import numpy as np
data = data = pd.read_excel('./data/sales.xlsx')
data.head()
Функции в наборе данных: номер заказа, имя клиента, название товара, количество, цена за единицу, сумма и соответствующая дата покупки.
форматирование вывода
style
серединаformat
Функция может форматировать выходные данные, например, в наборе данных выше, чтобы найти среднюю и общую сумму, потраченную каждым клиентом, требуя два десятичных знака и отображая соответствующую валюту.
(data.groupby(['姓名'])['金额'].agg(['mean','sum'])
.head(5)
.style
.format('${0:,.2f}'))
Или найдите общий объем потребления каждого клиента (сохраните 2 знака после запятой) и его соответствующую долю (отображается в процентах).
consumer_sales = data.groupby('姓名')['金额'].agg(['sum']).reset_index()
consumer_sales['消费金额占比'] = consumer_sales['sum'] / consumer_sales['sum'].sum()
(consumer_sales.head(5)
.style
.format({'sum':'${0:,.0f}', '消费金额占比': '{:.2%}'}))
Выделите специальные значения
style
Вы также можете выделить специальные значения в данных, например, выделить самое большое значение в данных (highlight_max
), минимальное значение (highlight_min
).
#求每个月的销售总金额,并分别用红色、绿色高亮显示最大值和最小值
monthly_sales = data.resample('M',on='日期')['金额'].agg(['sum']).reset_index()
monthly_sales['pct_of_total'] = monthly_sales['sum'] / data['金额'].sum()
format_dict = {'sum':'${0:,.0f}', '日期': '{:%Y-%m}', 'pct_of_total': '{:.2%}'}
(monthly_sales.style
.format(format_dict)
.highlight_max(color='#cd4f39')
.highlight_min(color='lightgreen'))
Стиль уровня
использоватьstyle
изbackground_gradient
метод, вы также можете реализовать стиль цветовой шкалы отображения в условном форматировании, аналогичном Excel, и использовать глубину цвета для визуального представления размера данных.
import seaborn as sns
cm = sns.light_palette("green", as_cmap=True)
(data.groupby(['姓名'])[['数量','金额']]
.agg(['sum'])
.head(5)
.style
.background_gradient(cmap=cm))
стиль панели данных
Точно так же для стиля гистограммы в условном форматировании Excel вы можете использоватьstyle
серединаbar
Для достижения аналогичного эффекта размер значения можно визуально отображать через длину цветной полосы.
(monthly_sales.style
.format(format_dict)
.bar(color='#FFA07A', vmin=100_000, subset=['sum'], align='zero')
.bar(color='lightgreen', vmin=0, subset=['pct_of_total'], align='zero')
)
Спарклайны
Наконец, простая и легкая в использовании операция Sao -sparklines
Он может отображать мини-карту характеристик данных в виде строки.
Предположим, у меня сейчас есть такое требование, то есть я хочу видеть общее распределение количества покупок и суммы всех пользователей. При обычном мышлении его можно нарисовать в наглядном виде, но это немного сложно.sparklines
Этого эффекта можно легко добиться.
Сначала нужно установитьsparklines
эта сумка
pip install sparklines
Поскольку для реализации требований необходимо использоватьgroupby
функция, поэтому сначала определите функцию-обработчик
from sparklines import sparklines
# 定义sparklines函数用于展现数据分布
def sparkline_str(x):
bins = np.histogram(x)[0]
sl = ''.join(sparklines(bins))
return sl
# 定义groupby之后的列名
sparkline_str.__name__ = "分布图"
data.groupby('姓名')[['数量', '金额']].agg(['mean', sparkline_str])
Таким образом, распределение количества потребления и суммы потребления каждого пользователя может быть отображено более четко и интуитивно понятно, и могут быть проведены дальнейшие исследования потребительского поведения пользователей в соответствии с этими характеристиками.
этоsparklines
Функция довольно крутая и практичная. Для более конкретного использования вы можете посмотретьsparklines
документация.
Использованная литература:ПБ Python.com/styling-disk…
Отсканируйте код, чтобы подписаться на официальный аккаунт"Питон Чтение Финансов", получите галантерею в первый раз!