Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Форматирование таблиц в Pandas. Учебно-методическое пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Министерство науки и высшего образования Российской Федерации
Казанский национальный исследовательский
технологический университет
А. Н. Титов, Р. Ф. Тазиева
ФОРМАТИРОВАНИЕ
ТАБЛИЦ В 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]