Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Форматирование таблиц в Pandas. Учебно-методическое пособие
.pdf
Министерство науки и высшего образования Российской Федерации
Казанский национальный исследовательский
технологический университет
А. Н. Титов, Р. Ф. Тазиева
ФОРМАТИРОВАНИЕ
ТАБЛИЦ В PANDAS
Учебно-методическое пособие
Казань
Издательство КНИТУ
2024

УДК 004.42(075)
ББК 32.97я7
Т45
Печатается по решению редакционно-издательского совета
Т45
Титов А. Н.
Форматирование таблиц в Pandas : учебно-методическое пособие /
А. Н. Титов, Р. Ф. Тазиева; Минобрнауки России, Казан. нац. исслед.
технол. ун-т. – Казань : Изд-во КНИТУ, 2024. – 88 с.
ISBN 978-5-7882-3486-1
ISBN 978-5-7882-3486-1
©
Титов А. Н., Тазиева Р. Ф., 2024
©
Казанский национальный исследовательский
технологический университет, 2024
УДК 004.42(075)
ББК 32.97я7
Казанского национального исследовательского технологического университета
Рецензенты:
канд. пед. наук, доц. С. М. Куценко
канд. экон. наук О. С. Семичева
Рассмотрены возможности класса Styler для форматирования датафреймов
Pandas. Приведены примеры форматирования таблиц с помощью встроенных стилей и путем создания собственных стилей пользователя. Показано, как можно
применять к таблице различные методы форматирования, такие как условное
форматирование, изменение шрифта, цвета и выравнивание текста, добавление
границ ячеек и др.
Предназначено для обучающихся направлений подготовки: 09.03.02 «Ин-
формационные системы и технологии», 18.03.01 «Химическая технология»,
28.03.02 «Наноинженерия», 29.03.04 «Технология художественной обработки материалов», 29.03.05 «Конструирование изделий легкой промышленности», изучающих дисциплины «Обработка экспериментальных данных», «Программирование», «Большие данные», «Теория информации, данные, знания», «Вычислительная математика».
Подготовлено на кафедре информатики и прикладной математики.
2

С О Д Е Р Ж А Н И Е
Введение ............................................................................................................ 4
1. ФОРМАТИРОВАНИЕ ЧИСЕЛ ................................................................... 6
1.1. Функция format для форматирования чисел ....................................... 6
1.2. Форматирование табличных данных ................................................ 12
2. ВСТРОЕННЫЕ СТИЛИ ............................................................................. 18
2.1. Цвета, поддерживаемые в HTML ...................................................... 18
2.2. Метод highlight_null ............................................................................ 24
2.3. Методы background_gradient и text_gradient ..................................... 26
2.4. Метод bar .............................................................................................. 31
2.5. Методы highlight_max и highlight_min .............................................. 38
2.6. Метод highlight_between ..................................................................... 40
2.7. Метод highlight_quantile ..................................................................... 42
3. УСТАНОВКА СТИЛЯ ТАБЛИЦЫ ........................................................... 44
3.1. Метод set_properties ............................................................................ 44
3.2. Метод set_table_styles.......................................................................... 46
3.4. Методы applymap, apply, applymap_index ......................................... 65
3.5. Метод pipe ............................................................................................ 70
3.6. Метод set_tooltips ................................................................................ 72
3.7. Метод set_caption ................................................................................. 74
3.8. Метод set_sticky ................................................................................... 77
3.9. Скрытие данных. Метод hide ............................................................. 78
3.10. Экспорт стилизованных DataFrames в Excel .................................. 79
Задания для самостоятельной работы студентов ........................................ 80
Заключение ...................................................................................................... 86
Литература ....................................................................................................... 87
3

В В Е Д Е Н И Е
Одним из инструментов для анализа данных в Python является
Pandas. Данные объекта Pandas внутренне преобразуются в HTML-элемент <table>, который затем может быть выведен на экран, например,
с помощью веб-IDE Jupyter Notebook. Jupyter Notebook позволяет форматировать выводимую информацию так же, как и любую другую вебстраницу. Всякий раз при выводе датафрейма на экран он отображается
с использованием языков разметки гипертекста HTML и каскадных таблиц стилей CSS (Cascading Style Sheets). Каскадные таблицы стилей –
это язык иерархических правил, с помощью которого можно менять
внешний вид HTML-документа и который позволяет работать со шрифтами, цветами, градиентами и анимацией. CSS определяет, каким образом элемент должен быть размещен на экране.
В модуле Pandas имеется несколько способов визуализации таб-
лиц. Самый простой из них – использование функции display() для отоб-
ражения датафрейма в различных форматах, включая формат таблицы.
Отображение по умолчанию очень простое и не предоставляет какихлибо специальных функций, которые можно использовать в целях презентации, например изменения цвета ячеек, строк, столбцов и т. д., поэтому часто аналитики по-прежнему обращаются к Excel, чтобы добавить стили данных (например, валюты) или условное форматирование,
прежде чем делиться полученными данными.
Создатели Pandas разработали API стилей в 2019 году, и с тех пор
он активно развивается. API (Application Programming Interface) –
это программный интерфейс, позволяющий связывать между собой
различные приложения. Он содержит наборы методов, классов, библиотек и функций. API стилей возвращает новый объект Styler, в котором содержится набор методов для применения форматирования
и стиля к наборам данных. Он позволяет включать CSS в код для улучшения внешнего вида полученных таблиц. Конечное оформление достигается именно с помощью CSS. Также в Pandas доступно условное
форматирование. С его помощью можно визуализировать данные
в виде гистограммы или с использованием цветовых шкал: выделять
данные таблицы, отвечающие определенным условиям, изменять формат представления значений и т. д. Пользователю предоставлена возможность создания функций для выделения значений на основе заданных им условий, добавления подписи к таблицам, скрытия данных.
4

В представленном авторами пособии демонстрируется визуали-
зация табличных данных с использованием класса Styler. Объект Styler
содержит множество методов, которые можно использовать для изменения внешнего вида датафреймов. Он позволяет включать в код CSS
с целью создания привлекательных таблиц. Для правильного оформления таблиц требуются небольшие знания HTML и CSS.
Пособие состоит из трех глав. В первой главе приведены при-
меры форматирования числовых значений, индексов и заголовков
столбцов с помощью методов format(), format_index(), relabel_index()
и рассмотрен метод concat(), предназначенный для объединения похожих датафреймов.
Во второй главе рассмотрены методы, позволяющие выделять
(цветом, шрифтом, созданием рамки вокруг ячейки и т. д.) ячейки с данными или сами данные, удовлетворяющие определенным условиям:
ячейки с отсутствующими значениями; ячейки, содержащие максимальные или минимальные значения; ячейки, содержащие данные, значения которых лежат в заданном интервале. Также рассмотрены методы создания тепловых карт и гистограмм внутри ячеек.
Третья глава посвящена вопросам форматирования таблиц с ис-
пользованием методов set_properties и set_table_styles, с помощью которых можно изменить стиль как всей таблицы, включая название таблицы, так и отдельных ее частей (строк, столбцов, ячеек, индексов, заголовков столбцов). Кроме этого, в главе рассмотрены методы
applymap(), apply() и pipe(), предназначенные для передачи в Styler
функций стиля и определенным образом применяющие их к DataFrame,
визуализируя стили CSS, метод set_tooltips(), предназначенный для добавления всплывающих подсказок, метод set_caption() для добавления
заголовка к таблице, и методы, облегчающие просмотр датафрейма:
set_sticky() и hide().
Материал, изложенный в пособии, может быть использован при
проведении лабораторных занятий по дисциплинам «Обработка экспериментальных данных», «Программирование», «Большие данные», «Теория информации, данные, знания», «Вычислительная математика».
5

1. Ф О Р М А Т И Р О В А Н И Е Ч И С Е Л
В главе рассмотрен метод форматирования строки format, позво-
ляющий вставлять на место плейсхолдеров (placeholder) определенные
значения. Placeholder – это заключенный в фигурные скобки вспомогательный текст, содержащий специальные параметры – идентификаторы
формата, меняющие строковое представление.
Во второй части главы показано, как можно отформатировать от-
дельные значения ячейки, столбцы и строки датафрейма.
1 . 1 . Ф у н к ц и я f o r m a t д л я ф о р м а т и р о в а н и я ч и с е л
Для форматирования числовых значений предназначена функция
format(), являющаяся одним из самых распространенных способов фор-
матирования чисел в Python. Эта функция позволяет задать формат вывода числа, используя специальные символы. Общая форма спецификатора стандартного формата:
format_spec [fill]align][sign]["z"]["#"]["0"][width][grouping_option]["."
precision][type]
Если указано допустимое значение выравнивания (align), то ему
может предшествовать символ заполнения fill. Символ заполнения (fill)
может быть практически любым символом, которыми будет заполнено
выделенное пространство, если указано допустимое значение выравнивания align и оно превышает число символов, необходимых для вывода
числа или строки. По умолчанию это пробел. Ширина поля, если не
определена его минимальная ширина (параметр width), всегда будет
иметь тот же размер, что и данные для его заполнения. В этом случае
параметр fill игнорируется.
Ширина (width) – десятичное целое число, определяющее мини-
мальную общую ширину поля, включая любые префиксы, разделители
и другие символы форматирования. Если значение не указано, то ширина поля будет определяться содержимым.
Точность (precision) – количество цифр, выводимых после фик-
сированной точки, или количество символов в строке. Для строковых
типов данных параметр точность указывает максимальный размер
6

7
поля: сколько символов из содержимого поля будет выведено на
экран. Точность не используется для вывода целых чисел. Значения параметра: 'f', 'F', 'g', 'G'.
Примеры:
x=-123.345678444; h='pineapple'
print(x)
print("{:.2f}".format(x))
print("{:.3}".format(x))
print("{:.4}".format(h))
print("{:4}".format(h))
print("{:^14}".format(h))
Значения спецификаторов align, sign, type приведены в табл. 1.1–1. 4.
Таблица 1.1
Выравнивание (align)
Значение
Пояснение
<
Принудительное выравнивание по левому краю в пределах выделенного пространства, заданного спецификацией width (значение по умолчанию для большинства
объектов Python). Например: "{: <9}"
>
Принудительное выравнивание по правому краю в пределах выделенного пространства (значение по умолчанию для чисел)
=
Принудительное размещение отступа после знака (если
таковой имеется) перед цифрами
^
Центрирование в пределах выделенного пространства
Примеры на вывод значений переменных с применением опций
align и fill:
s=1234
# На вывод числа отведено 6 позиций. После знака стоит пробел
print("{:=6}".format(-s)) # или print(format(-s, "=6"))
# На число выделено 9 позиций. Перед числом выведены символы }. Знак выравнивания обязателен
print(format(s, "}>9"))
# На число выделено 12 позиций. Число выровнено по центру
print("{:^12}".format(s))
# На число выделено 11 позиций. Слева добавлены нули

8
print("{:011d}".format(s))
b='summer'
# На вывод строки отведено 11 позиций
# Она выровнена по левому краю. Справа добавлены символы *
print("{:*<11}".format(b)) # Строка выровнена по правому краю
print("{:>11}".format(b))
Выполнив код, получили:
Таблица 1.2
Вывод знака числа (sign)
Значение
Пояснение
+
Параметр указывает, что знак нужно выводить как для отрицательных чисел, так и для положительных
–
Параметр указывает, что знак нужно выводить только для
отрицательных чисел (поведение по умолчанию)
Пробел
Параметр указывает, что перед положительным числом
нужно выводить пробел, а перед отрицательным – знак
числа
Примеры на вывод чисел со знаком и без него:
s=1234; v=12.44566667788898
# 12 позиций на число. Перед числом стоит знак
# После числа размещен текст
print("{:+12} кг".format(s))
# Простой вывод. Число выводится полностью
print(format(v))
# Перед числом добавлен пробел
print("{: }".format(s))
# Пробела перед числом нет
print("{:}".format(s))Результаты:

9
Тип (type) определяет, как должны быть представлены данные.
Типы числовых данных приведены в табл. 1.3–1.4.
Таблица 1.3
Типы целочисленного представления
Тип
Пояснение
'b'
Выводит число в двоичном формате
'c'
Выводит символ Юникода, соответствующий значению
числа
'd'
Предназначен для вывода целых десятичных чисел
'o'
Переводит число в восьмеричный формат и выводит его на
экран
'x'
Переводит число в шестнадцатеричный формат и выводит
его на экран, используя строчные буквы для цифр выше 9
'X'
Переводит число в шестнадцатеричный формат и выводит
его на экран, используя прописные буквы для цифр выше 9
'n'
Формат для вывода целых чисел
None
То же, что и 'd'
Пример вывода на экран целого числа с выравниванием по ле-
вому краю, заполнением, со знаком и разделителем тысяч в виде подчеркивания:
s=1234;
print(format(s, "*<+9_d") # +1_234***
Так можно узнать символ Юникода, соответствующий значению
123: s=123; print(format(s, "c")) # {
Таблица 1.4
Формат дробных чисел
Тип
Пояснение
'e'
Экспоненциальное представление чисел
'E'
Экспоненциальное представление. То же, что и 'e', за исключением того, что при выводе используется верхний регистр E
в качестве символа-разделителя
'f'
Формат чисел с плавающей запятой
'F'
Формат чисел с плавающей запятой, верхний регистр
'g'
Общий формат, нижний регистр
'G'
Общий формат, верхний регистр
'%'
Процент. Умножает число на 100 и отображает в фиксированном формате, за которым следует знак процента

10
При использовании для вывода чисел форматов, представленных
в табл. 1.4, можно, например, задать количество цифр после запятой
(точки), ширину (количество символов) выводимого числа и т. д. Чаще
всего при выводе чисел задают количество знаков после запятой. Если
этого не сделать, число будет выведено целиком. За количество цифр,
выводимых после фиксированной точки, или количество символов
в строке отвечает параметр точность (precision). Точность не используется для вывода целых чисел. Значения параметра: 'f', 'F', 'g', 'G'.
Примеры:
x=-123.345678444
print(x)
print("{:.5f}".format(x))
print("{:.5}".format(x))
print("{:9.5}".format(x))
Результаты:
-123.345678444
-123.34568
-123.35
-123.35
В первом случае число выведено целиком, во втором – с 5 зна-
ками после запятой. В третьем случае выведено 5 значащих цифр числа,
а в последнем – на размещение числа выделено 9 разрядов, включая десятичную точку и знак числа, и выведено 5 значащих цифр.
Примеры вывода нецелых чисел с использованием спецификато-
ров форматов F, e, E, g, G, %:
import numpy as np
s=12324.5453322344444;
print(format(s, "f"))
print(format(s, ".7F"))
print(format(s, "e"))
print(format(s, "E"))
print(format(s, "g"))
print(format(3456789.678, "G"))
print(format(np.nan, "G"))
print(format(np.nan, "g"))
a=2; b=81; c= a/b
print(format(c, ".3%"))
Результаты:
12324.545332
12324.5453322
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
