
Python предоставляет несколько способов создания таблиц, включая встроенные структуры данных, такие как списки и словари, а также внешние библиотеки, например pandas и PrettyTable. Выбор метода зависит от объема данных и требуемого уровня форматирования.
Для более сложных задач, включая обработку больших наборов данных, стоит использовать библиотеку pandas. Она обеспечивает удобное создание DataFrame, где легко добавлять, удалять и фильтровать строки и столбцы. Код с pandas позволяет импортировать данные из CSV, Excel или баз данных и сразу работать с таблицей как с объектом Python.
Использование списка списков для простой таблицы

Список списков в Python позволяет хранить данные в виде двухмерной структуры, где каждая вложенная последовательность представляет строку таблицы. Такой подход удобен для небольших наборов данных и операций с ними без подключения внешних библиотек.
Пример создания таблицы с информацией о студентах и их оценках:
students = [
["Имя", "Возраст", "Оценка"],
["Алексей", 20, 8.5],
["Мария", 22, 9.0],
["Иван", 19, 7.8]
]
for row in students:
print(row)
Если требуется форматирование столбцов, применяют str.ljust() или str.rjust():
for row in students:
print(row[0].ljust(10), str(row[1]).rjust(5), str(row[2]).rjust(6))
Добавление новой строки осуществляется с помощью метода append():
students.append(["Ольга", 21, 8.2])
Редактирование конкретной ячейки производится через индексацию строк и столбцов:
students[2][2] = 9.5 # обновление оценки Марии
Удаление строки выполняется с помощью del или pop():
del students[3] # удаляет Ивана
Формирование таблицы с помощью словарей и ключей

Словари в Python позволяют структурировать данные в виде пар ключ-значение, что упрощает создание таблиц. Каждый ключ может соответствовать названию столбца, а значение – списку элементов этого столбца.
Пример создания таблицы с данными о сотрудниках:
employees = {
"Имя": ["Алексей", "Мария", "Игорь"],
"Возраст": [28, 34, 41],
"Должность": ["Инженер", "Аналитик", "Менеджер"]
}
Для отображения таблицы построчно удобно использовать функцию zip():
for row in zip(employees["Имя"], employees["Возраст"], employees["Должность"]):
print(row)
Результат:
('Алексей', 28, 'Инженер')
('Мария', 34, 'Аналитик')
('Игорь', 41, 'Менеджер')
Для динамического создания таблицы из словаря, где неизвестно количество колонок, применяют:
keys = employees.keys()
rows = zip(*employees.values())
for row in rows:
print(dict(zip(keys, row)))
{'Имя': 'Алексей', 'Возраст': 28, 'Должность': 'Инженер'}
{'Имя': 'Мария', 'Возраст': 34, 'Должность': 'Аналитик'}
{'Имя': 'Игорь', 'Возраст': 41, 'Должность': 'Менеджер'}
С помощью словарей легко обновлять данные: добавление нового столбца происходит через новый ключ, а расширение существующих данных – через метод append() для списков:
employees["Отдел"] = ["Разработка", "Аналитика", "Продажи"]
employees["Возраст"].append(30)
Использование ключей позволяет обращаться к отдельным колонкам напрямую, обеспечивая быстрый доступ и фильтрацию данных без необходимости проходить всю таблицу.
При работе с большими наборами данных рекомендуется хранить столбцы в списках одинаковой длины, чтобы избежать несоответствия при итерации и преобразованиях.
Такой подход подходит для простых таблиц, генерации отчетов и последующей интеграции с библиотеками вроде pandas для расширенного анализа.
Применение библиотеки pandas для создания DataFrame
Библиотека pandas предоставляет структуру данных DataFrame, которая позволяет хранить и обрабатывать табличные данные с индексами и метками столбцов. Для начала необходимо импортировать библиотеку: import pandas as pd.
Создать DataFrame можно из словаря списков. Например, для таблицы с информацией о студентах:
data = {
'Имя': ['Алексей', 'Мария', 'Иван'],
'Возраст': [23, 21, 22],
'Факультет': ['Физика', 'Математика', 'Информатика']
}
df = pd.DataFrame(data)
print(df)
Результат будет следующим:
Имя Возраст Факультет
0 Алексей 23 Физика
1 Мария 21 Математика
2 Иван 22 Информатика
Для задания собственного индекса используют параметр index:
df = pd.DataFrame(data, index=['студент1', 'студент2', 'студент3'])
print(df)
DataFrame можно создать из списка словарей. Это удобно, когда строки формируются динамически:
students = [
{'Имя': 'Алексей', 'Возраст': 23, 'Факультет': 'Физика'},
{'Имя': 'Мария', 'Возраст': 21, 'Факультет': 'Математика'},
{'Имя': 'Иван', 'Возраст': 22, 'Факультет': 'Информатика'}
]
df = pd.DataFrame(students)
print(df)
Для создания пустого DataFrame с последующим добавлением данных используют:
df = pd.DataFrame(columns=['Имя', 'Возраст', 'Факультет'])
df.loc[0] = ['Алексей', 23, 'Физика']
df.loc[1] = ['Мария', 21, 'Математика']
print(df)
Для контроля типов данных применяют параметр dtypes или метод astype:
df['Возраст'] = df['Возраст'].astype('int32')
print(df.dtypes)
pandas позволяет создавать DataFrame из CSV-файлов или других источников: df = pd.read_csv('students.csv'). Это обеспечивает удобный импорт готовых таблиц и дальнейшую работу с ними.
Для выбора столбцов используют df[['Имя', 'Возраст']], а для фильтрации строк – логические выражения: df[df['Возраст'] > 21].
Использование pandas облегчает создание, структурирование и модификацию таблиц в Python, позволяя работать с данными без ручного перебора строк.
Добавление и удаление строк и столбцов в таблице
В Python для работы с таблицами чаще всего используют библиотеку pandas. Основные операции добавления и удаления строк и столбцов выполняются с помощью методов append, drop и индексирования.
Добавление строк:
- Создание новой строки в виде словаря и добавление через
append:
import pandas as pd
df = pd.DataFrame({'Имя': ['Алексей', 'Мария'], 'Возраст': [25, 30]})
новая_строка = {'Имя': 'Иван', 'Возраст': 28}
df = df.append(новая_строка, ignore_index=True)
print(df)
- Добавление нескольких строк сразу через DataFrame:
новые_строки = pd.DataFrame([{'Имя': 'Ольга', 'Возраст': 22}, {'Имя': 'Сергей', 'Возраст': 35}])
df = pd.concat([df, новые_строки], ignore_index=True)
print(df)
Удаление строк:
- Удаление по индексу через
drop:
df = df.drop(index=1) # удаляет вторую строку
print(df)
- Удаление строк по условию:
df = df[df['Возраст'] > 25] # оставляет только строки, где возраст больше 25
print(df)
Добавление столбцов:
- Создание нового столбца с конкретными значениями:
df['Город'] = ['Москва', 'Санкт-Петербург', 'Казань']
print(df)
- Добавление столбца на основе вычислений из других столбцов:
df['Возраст через 5 лет'] = df['Возраст'] + 5
print(df)
Удаление столбцов:
- Удаление одного или нескольких столбцов через
drop:
df = df.drop(columns=['Город'])
print(df)
- Удаление столбца через оператор
del:
del df['Возраст через 5 лет']
print(df)
Эти методы позволяют гибко управлять структурой таблицы, поддерживая точное добавление и удаление данных без потери индексов и согласованности столбцов.
Форматирование и выравнивание данных в таблице

Пример выравнивания текста и чисел при помощи f-строк:
data = [
["Имя", "Возраст", "Зарплата"],
["Анна", 28, 55000],
["Иван", 35, 72000],
["Ольга", 22, 40000]
]
for row in data:
print(f"{row[0]:<10} {row[1]:>5} {row[2]:>10}")
:<выравнивание по левому краю.:>выравнивание по правому краю.:с числом после символа задает ширину столбца.
Использование модуля tabulate упрощает создание аккуратных таблиц с форматированием:
from tabulate import tabulate
table = [
["Анна", 28, 55000],
["Иван", 35, 72000],
["Ольга", 22, 40000]
]
headers = ["Имя", "Возраст", "Зарплата"]
print(tabulate(table, headers, tablefmt="grid", stralign="left", numalign="right"))
tablefmtвыбирает стиль таблицы:grid,pipe,fancy_grid.stralignзадает выравнивание текста (left,center,right).numalignуправляет выравниванием чисел.
Для pandas.DataFrame применяется метод style:
import pandas as pd
df = pd.DataFrame({
"Имя": ["Анна", "Иван", "Ольга"],
"Возраст": [28, 35, 22],
"Зарплата": [55000, 72000, 40000]
})
df.style.format({
"Возраст": "{:>3}",
"Зарплата": "{:>8,.0f}"
})
- Числа можно форматировать с разделителями тысяч.
- Выравнивание выполняется через пробелы или символы форматирования
{:>n}. - Метод
style.formatне изменяет исходный DataFrame, а только внешний вид.
Практическое правило: текст выравнивают по левому краю, числа – по правому. Это обеспечивает читаемость и предотвращает визуальное смешение типов данных.
Сохранение таблицы в CSV и Excel файлы

Для сохранения таблиц в Python чаще всего используют библиотеку pandas. Она позволяет экспортировать данные в форматы CSV и Excel без дополнительных преобразований.
Чтобы сохранить таблицу в CSV, используйте метод to_csv(). Пример:
import pandas as pd
data = {'Имя': ['Анна', 'Иван', 'Ольга'], 'Возраст': [28, 34, 22]}
df = pd.DataFrame(data)
df.to_csv('таблица.csv', index=False, encoding='utf-8-sig')
Аргумент index=False отключает запись индекса, encoding='utf-8-sig' обеспечивает корректное отображение русских символов в Excel.
Для сохранения таблицы в Excel используется метод to_excel(). Пример:
df.to_excel('таблица.xlsx', sheet_name='Данные', index=False)
Параметр sheet_name задает имя листа в файле Excel. Для работы с Excel потребуется установить openpyxl (pip install openpyxl), иначе сохранение вызовет ошибку.
При больших таблицах полезно использовать chunksize для CSV и engine='openpyxl' для Excel, чтобы контролировать скорость записи и совместимость с разными версиями Excel.
Экспорт таблиц в CSV и Excel обеспечивает переносимость данных и их последующую обработку в офисных приложениях без потери структуры.
Сортировка и фильтрация данных в Python-таблице
Для эффективной работы с таблицами в Python часто используют библиотеку pandas. Основные операции включают сортировку по одному или нескольким столбцам и фильтрацию строк по условиям.
Сортировка выполняется с помощью метода sort_values(). Например, чтобы отсортировать таблицу по столбцу Возраст по возрастанию:
import pandas as pd
data = {'Имя': ['Анна', 'Борис', 'Виктор'], 'Возраст': [25, 30, 22]}
df = pd.DataFrame(data)
df_sorted = df.sort_values(by='Возраст')
print(df_sorted)
Для сортировки по нескольким столбцам используется список названий столбцов:
df_sorted_multi = df.sort_values(by=['Возраст', 'Имя'], ascending=[True, False])
print(df_sorted_multi)
Фильтрация строк позволяет выбрать данные по условию. Пример: выбрать всех пользователей старше 23 лет:
df_filtered = df[df['Возраст'] > 23]
print(df_filtered)
Можно комбинировать несколько условий с помощью логических операторов & и |:
df_filtered_multi = df[(df['Возраст'] > 23) & (df['Имя'] != 'Борис')]
print(df_filtered_multi)
Пример таблицы после фильтрации:
| Имя | Возраст |
|---|---|
| Анна | 25 |
Методы sort_values() и логические фильтры позволяют управлять данными без изменения исходного набора, обеспечивая точный контроль над содержимым таблицы.
Вопрос-ответ:
Какие библиотеки можно использовать для создания таблиц в Python?
В Python для создания таблиц часто применяют такие библиотеки, как pandas, PrettyTable и tabulate. Pandas подходит для работы с большими наборами данных и поддерживает сохранение таблиц в различные форматы, включая CSV и Excel. PrettyTable позволяет создавать текстовые таблицы с удобным форматированием для вывода в консоль, а tabulate умеет генерировать таблицы в разных стилях, включая Markdown и HTML.
Как создать простую таблицу с помощью pandas?
Для создания таблицы с pandas используется объект DataFrame. Например, можно написать: import pandas as pd, затем создать данные в виде словаря: data = {'Имя': ['Анна', 'Иван'], 'Возраст': [25, 30]}, и преобразовать его в таблицу: df = pd.DataFrame(data). После этого таблица доступна для просмотра через print(df) и для дальнейшей обработки.
Можно ли добавить новую строку или столбец в уже существующую таблицу pandas?
Да, pandas позволяет добавлять данные. Чтобы добавить столбец, можно написать: df['Город'] = ['Москва', 'Санкт-Петербург']. Для добавления строки используется метод df.loc[len(df)] = ['Мария', 28, 'Казань']. Таблица автоматически обновляется, и новые данные становятся доступными для анализа и сохранения.
Как вывести таблицу в удобочитаемом формате в консоли?
Для красивого отображения таблиц в консоли можно использовать библиотеку PrettyTable. Сначала создается объект таблицы: from prettytable import PrettyTable; table = PrettyTable(). Потом добавляются столбцы: table.add_column('Имя', ['Анна', 'Иван']) и table.add_column('Возраст', [25, 30]). После этого выводится таблица через print(table), и она отображается с выравниванием и границами.
Как сохранить созданную таблицу в файл Excel или CSV?
Если таблица создана с помощью pandas, ее легко сохранить в файл. Для CSV используется метод df.to_csv('filename.csv', index=False), а для Excel — df.to_excel('filename.xlsx', index=False). Параметр index=False отключает запись индекса строки в файл, делая таблицу более читаемой для других программ, таких как Excel.
