Как использовать функцию табуляции для создания красиво отформатированных таблиц в Python
Возможность быстро организовать наши данные в более читаемый формат, например, при обработке данных, может быть чрезвычайно полезной для анализа данных и планирования следующих шагов. Python предлагает возможность легко преобразовывать определенные табличные типы данных в хорошо отформатированные текстовые таблицы, и это с помощью функции tabulate.
установить таблицу
Сначала мы устанавливаем библиотеку tabulate с помощью команды pip install в командной строке:
pip install tabulate
функция импорта табуляции
Затем мы импортируем функцию tabulate из библиотеки tabulate в наш код:
from tabulate import tabulate
И теперь мы готовы использовать функцию tabulate!
табличные типы данных, поддерживаемые tabulate
Функция tabulate может преобразовать любое из следующего в легко читаемую текстовую таблицу: (из документации табуляции)
- список списков или другой итеративный элемент
- список или другой повторяемый словарь (ключи как столбцы)
- dict из итераций (ключи как столбцы)
- двумерный массив NumPy
- Массивы записей NumPy (имена в виде столбцов)
- pandas.DataFrame
список списков
Например, если у нас есть следующий список списков:
table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]
Мы можем превратить ее в гораздо более читаемую текстовую таблицу с помощью функции tabulate:
print(tabulate(table))
Поскольку первый список в списке списков содержит имена столбцов в качестве своих элементов, мы можем установить его в качестве имен столбцов или заголовков, передав 'firstrow' в качестве аргумента для заголовки:
print(tabulate(table, headers='firstrow'))
Функция tabulate также содержит параметр tablefmt, который позволяет нам улучшить внешний вид нашей таблицы с помощью псевдо- графика:
print(tabulate(table, headers='firstrow', tablefmt='grid'))
Я предпочитаю использовать аргумент ‘fancy_grid’ для tablefmt:
print(tabulate(table, headers='firstrow', tablefmt='fancy_grid'))
словарь итераций
Мы можем создать ту же таблицу выше, используя словарь:
info = {'First Name': ['John', 'Mary', 'Jennifer'], 'Last Name': ['Smith', 'Jane', 'Doe'], 'Age': [39, 25, 28]}
В случае словаря ключи будут заголовками столбцов, а значения будет элементами этих столбцов. Мы указываем, что ключи будут заголовками, передавая ‘keys’ в качестве аргумента для параметра headers:
print(tabulate(info, headers='keys'))
И, конечно же, мы можем использовать параметр tablefmt, чтобы улучшить внешний вид таблицы:
print(tabulate(info, headers='keys', tablefmt='fancy_grid'))
добавление индекса
Мы также можем добавить индекс в нашу таблицу с помощью параметра showindex:
Мы можем добавить собственный индекс, передав iterable в параметр showindex. Например, если мы хотим, чтобы индекс начинался с 1, мы можем передать объект диапазона в качестве аргумента:
недостающие значения
Если мы удалим ‘Jennifer’ из приведенного выше info словаря, наша таблица будет содержать пустое поле:
print(tabulate({'First Name': ['John', 'Mary'], 'Last Name': ['Smith', 'Jane', 'Doe'], 'Age': [39, 25, 28]}, headers="keys", tablefmt='fancy_grid'))
Если в нашей таблице есть отсутствующие значения, мы можем выбрать, чем их заполнить, с помощью параметра missingval. Значение по умолчанию для missingval - пустая строка. Если мы изменим его на ‘N / A’, наша таблица будет выглядеть так:
print(tabulate({'First Name': ['John', 'Mary'], 'Last Name': ['Smith', 'Jane', 'Doe'], 'Age': [39, 25, 28]}, headers="keys", tablefmt='fancy_grid', missingval='N/A'))
Я надеюсь, что это руководство о том, как легко создавать красиво отформатированные таблицы с помощью функции табуляции, было полезным. Спасибо за внимание!