Табличные данные — это структурированные данные в строках и столбцах. Такая структуризация позволяет легко интерпретировать выводимые данные, поэтому она очень важна. А создавать красивые табличные данные в Python нам помогает библиотека tabulate.
Библиотека tabulate проста в использовании. Она стала одним из любимых инструментов для специалистов по анализу данных и разработчиков, которым необходимо создавать чисто отформатированные таблицы.
Пакет tabulate в Python создает хорошо отформатированные таблицы из различных источников данных. Основные области применения tabulate следующие:
tabulate() помогает отображать красивые таблицы в Jupyter Notebooks.Среди ключевых особенностей библиотеки tabulate можно выделить следующие:
Для установки пакета tabulate в Python можно использовать менеджер пакетов pip. В терминале или командной строке введите следующую строку:
pip install tabulate
Если вы хотите установить пакет для одного пользователя, не запрашивая права администратора, вы можете использовать флаг -user, как показано ниже.
pip install --user tabulate
При запуске скриптов в виртуальной среде можно создать новую виртуальную среду с помощью следующей команды:
python -m venv myenv
Чтобы активировать виртуальную среду, выполните следующие команды.
Для Windows:
myenv\Scripts\activate
Для macOS/Linux:
source myenv/bin/activate
Если установка прошла успешно, вы можете выполнить следующий код в редакторе Python, чтобы проверить номер версии пакета tabulate в среде Python.
import tabulate print(tabulate.__version__)
В примерах ниже показано базовое использование пакета tabulate для создания форматированных таблиц.
Самый простой способ использовать функцию tabulate() для создания таблиц — это предоставить ей список списков. Ключевыми аргументами в синтаксисе функции tabulate() являются следующие:
tabular_data. Данные для форматирования, например список списков или словарей.headers. Заголовки, которые должны быть представлены в таблице. Если этот аргумент опущен, таблица не будет содержать заголовков.tablefmt. Формат вывода таблицы, например plain, pipe, grid или html.В примере ниже показано, как использовать функцию tabulate() для создания таблицы в формате сетки.
# Import the tabulate module
from tabulate import tabulate
# Sample data: list of lists
data = [
["Alice", 24, "Engineer"],
["Bob", 30, "Data Scientist"],
["Charlie", 28, "Teacher"]
]
# Creating a table with headers and a grid format
table = tabulate(
data,
headers=["Name", "Age", "Profession"],
tablefmt="grid"
)
print(table) Pandas DataFrame — это распространенная структура для работы с табличными данными в Python. Используя библиотеку tabulate, вы можете представлять табличные данные в различных форматах в соответствии с требуемыми спецификациями.
В следующем примере показано, как отобразить таблицу, используя формат pipe.
# Import libraries
import pandas as pd
from tabulate import tabulate
# Sample DataFrame
df = pd.DataFrame({
"Name": ["Alice", "Bob", "Charlie"],
"Age": [24, 30, 28],
"Profession": ["Engineer", "Data Scientist", "Teacher"]
})
# Displaying the DataFrame as a formatted table
table = tabulate(
df,
headers='keys',
tablefmt='pipe'
)
print(table) Используя тот же DataFrame, df, можно вывести таблицу в формате grid.
print(tabulate(df, headers='keys', tablefmt='grid'))
Библиотека tabulate предлагает расширенные возможности, которые позволяют настраивать внешний вид сложных таблиц. Давайте рассмотрим некоторые из них.
Библиотека tabulate предлагает различные способы настройки внешнего вида таблиц, такие как регулировка выравнивания, установка ширины столбцов и использование различных форматов таблиц. Вот некоторые из ключевых опций форматирования:
numalign. Управляет выравниванием числовых столбцов. Допустимые значения: left, center и right.stralign. Управляет выравниванием столбцов со строками. Допустимые значения: left, center и right.colalign. Позволяет выравнивать отдельные столбцы, предоставляя список вариантов выравнивания.В примере ниже показано применение этих параметров форматирования.
from tabulate import tabulate
# Sample data: list of lists
data = [
["Alice", 24, 1200.50],
["Bob", 30, 3500.75],
["Charlie", 28, 2500.00]
]
# Customizing table appearance
table = tabulate(
data,
headers=["Name", "Age", "Salary"],
tablefmt="fancy_grid",
numalign="right",
stralign="center",
colalign=("center", "center", "right")
)
print(table) Библиотека tabulate также позволяет обрабатывать текстовые данные, превышающие типичную ширину столбцов. Аргумент maxcolwidths задает максимальную ширину каждой ячейки в выходной таблице для управления обертыванием текста внутри ячеек. Эта функция позволяет отображать длинную информацию в более удобочитаемом виде.
В приведенном ниже примере значение maxcolwidths установлено в 30 символов, чтобы обернуть текстовые данные в несколько строк, если они превышают указанное количество символов.
# Import tabulate library
from tabulate import tabulate
# Sample text data
data = [
["Alice", "Lorem ipsum dolor sit amet, consectetur adipiscing elit."],
["Bob", "Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."],
["Charlie", "Ut enim ad minim veniam, quis nostrud exercitation ullamco."]
]
# Creating a table with multiline cells
table = tabulate(
data,
headers=["Name", "Description"],
tablefmt="grid",
maxcolwidths=[None, 30] # Set maximum width for the Description column
)
print(table) Библиотека tabulate предоставляет утилиту командной строки, которая помогает отображать таблицы непосредственно из командной строки или терминала. Эта утилита позволяет генерировать таблицы без написания дополнительного кода Python.
Предположим, у вас есть CSV-файл с именем data.csv. Для создания таблицы с помощью tabulate вы используете следующую команду:
cat data.csv | tabulate -d , -f grid
Здесь:
cat data.csv считывает содержимое CSV-файла-d, задает разделитель (для CSV — запятая)-f grid устанавливает формат вывода в виде сеткиВ этом разделе мы рассмотрим различные случаи использования библиотеки tabulate для отображения таблиц в Python.
Предположим, что у нас есть следующие данные о продажах:
# Sample sales data
sales_data = [
["Q1", 15000, 12000, 13000],
["Q2", 17000, 16000, 14500],
["Q3", 18000, 15000, 16000],
["Q4", 20000, 21000, 19000]
]
headers = ["Quarter", "Product A", "Product B", "Product C"] Вы можете отобразить эти данные в таблице, используя формат fancy_grid.
# Import tabulate library from tabulate import tabulate # Displaying sales data using the 'fancy_grid' format table_fancy = tabulate(sales_data, headers=headers, tablefmt="fancy_grid") print(table_fancy)
Также можно отобразить данные в формате HTML, установив для tablefmt значение html.
# Displaying sales data using the 'html' format table_html = tabulate(sales_data, headers=headers, tablefmt="HTML") print(table_html)
<table> <thead> <tr><th>Quarter </th><th style="text-align: right;"> Product A</th><th style="text-align: right;"> Product B</th><th style="text-align: right;"> Product C</th></tr> </thead> <tbody> <tr><td>Q1 </td><td style="text-align: right;"> 15000</td><td style="text-align: right;"> 12000</td><td style="text-align: right;"> 13000</td></tr> <tr><td>Q2 </td><td style="text-align: right;"> 17000</td><td style="text-align: right;"> 16000</td><td style="text-align: right;"> 14500</td></tr> <tr><td>Q3 </td><td style="text-align: right;"> 18000</td><td style="text-align: right;"> 15000</td><td style="text-align: right;"> 16000</td></tr> <tr><td>Q4 </td><td style="text-align: right;"> 20000</td><td style="text-align: right;"> 21000</td><td style="text-align: right;"> 19000</td></tr> </tbody> </table>
Вывод таблицы в формате HTML полезен при веб-интеграции, если вы хотите встроить вывод таблицы в сайт. Вы также можете дополнительно настроить вывод HTML-таблиц с помощью CSS, чтобы они выглядели более привлекательно для пользователя.
Библиотеку tabulate можно легко интегрировать с блокнотами Jupyter для более удобного представления данных. В примере ниже показано, как создать образец DataFrame в Jupyter Notebook и отобразить его в таблице в формате сетки.
# Import required library
import pandas as pd
from tabulate import tabulate
# Sample student exam scores DataFrame
exam_scores_df = pd.DataFrame({
"Student": ["Alice", "Bob", "Charlie", "David"],
"Math": [85, 90, 78, 92],
"Science": [88, 76, 95, 85],
"English": [90, 88, 84, 91]
})
# Displaying the DataFrame as a formatted table using 'grid' format
table_jupyter = tabulate(exam_scores_df, headers='keys', tablefmt='grid')
print(table_jupyter) Преимущество использования библиотеки tabulate в среде Jupyter заключается в том, что она улучшает читаемость и сопоставление данных, особенно для задач анализа данных.
Библиотека tabulate важна для создания красиво оформленных таблиц на Python. Как вы видели, она также достаточно гибкая для использования в различных средах, таких как блокноты Jupyter, командная строка и веб-приложения.
Перевод статьи “Python Tabulate: A Full Guide”.
Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…
Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…
Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…
В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…
Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…
Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…