Построение табличных структур в Python: от списков до DataFrame

Раздел: Обработка данных -> Работа с таблицами

Способы создания таблиц в Python

Как создать таблицу с помощью Pandas?

Библиотека Pandas предоставляет основную структуру данных DataFrame для работы с таблицами. Самый простой способ передать данные в конструктор DataFrame.

import pandas as pd

# из списка списков
data = [['Иванов', 25], ['Петров', 30], ['Сидоров', 28]]
columns = ['Имя', 'Возраст']
df = pd.DataFrame(data, columns=columns)
print(df)

библиотека таблиц python (библиотека для работы с таблицами в python)

Результат:

       Имя  Возраст
0   Иванов       25
1   Петров       30
2  Сидоров       28

Python вывести таблицу (вывод таблицы в python)

Также можно создать из словаря, файла CSV, Excel, SQL и т.д. Этот метод универсален и рекомендуется для большинства задач обработки данных.

Типичные проблемы:

1. Забыть импортировать pandas (NameError).

2. Несоответствие количества столбцов в данных и в списке columns.

3. Неправильные типы данных (например, числа записаны как строки) – решается параметром dtype или последующей конвертацией.

Как создать таблицу из вложенных списков без Pandas?

Если не требуется мощный анализ, можно использовать просто список списков. Однако такая таблица не обладает встроенными методами.

data = [
    ['Имя', 'Возраст'],
    ['Иванов', 25],
    ['Петров', 30],
    ['Сидоров', 28]
]
for row in data:
    print('\t'.join(str(cell) for cell in row))

таблица python задача (задача на таблицу в python)

Результат:

Имя    Возраст
Иванов 25
Петров 30
Сидоров 28

Python работа с таблицами (работа с таблицами в python)

Проблемы:

1. Трудно обращаться по столбцам.

2. Нет проверки типов.

Как создать таблицу с помощью словаря?

Словарь, где ключи - названия столбцов, значения - списки строк, тоже является табличной структурой. Удобно для построчной вставки.

table = {'Имя': ['Иванов', 'Петров', 'Сидоров'],
         'Возраст': [25, 30, 28]}
for i in range(len(table['Имя'])):
    print(table['Имя'][i], table['Возраст'][i])

Python создание таблиц (создание таблиц в python)

Проблемы:

1. Неравная длина списков приведет к ошибке индексации.

2. Отсутствие структуры строки.

Как создать таблицу из CSV файла?

Модуль csv позволяет читать данные в список списков.

import csv

with open('data.csv', 'r', encoding='utf-8') as f:
    reader = csv.reader(f)
    table = [row for row in reader]
# первый ряд - заголовки
headers = table[0]
data_rows = table[1:]

сортировка столбца python (сортировка столбца в python)

Результат – список списков. Для дальнейшего анализа лучше преобразовать в DataFrame.

Проблемы:

1. Разные разделители (по умолчанию запятая).

2. Кодировка файла может не совпадать.

Как вывести таблицу в консоли с форматированием?

Библиотека PrettyTable создает отформатированную ASCII-таблицу.

from prettytable import PrettyTable

table = PrettyTable()
table.field_names = ['Имя', 'Возраст']
table.add_row(['Иванов', 25])
table.add_row(['Петров', 30])
print(table)

Python столбец таблицы (столбец таблицы в python)

Результат:

+---------+---------+
|   Имя   | Возраст |
+---------+---------+
|  Иванов |    25   |
|  Петров |    30   |
+---------+---------+

Проблемы:

1. Необходимо устанавливать отдельную библиотеку.

2. Не предназначено для больших таблиц.

- Python таблица ввода (таблица ввода в python)
- Python таблица данных (таблица данных в python)
- Python таблица значений (таблица значений в python)

Расширенные примеры создания и обработки таблиц

Как загрузить CSV с указанием типов и обработкой ошибок?

Пример
import pandas as pd

# CSV с разделителем точка с запятой, указание типов
try:
    df = pd.read_csv('data.csv', sep=';', encoding='utf-8',
                     dtype={'ID': int, 'Цена': float})
except FileNotFoundError:
    print('Файл не найден')
except ValueError as e:
    print(f'Ошибка преобразования: {e}')

Пояснение: параметр dtype задает тип столбцов, что предотвращает автоматическое определение. Исключения обрабатываются отдельно.

Как прочитать несколько листов Excel?

Пример
import pandas as pd

# Чтение всех листов Excel
xls = pd.ExcelFile('report.xlsx')
sheets = xls.sheet_names
df_dict = {}
for sheet in sheets:
    df_dict[sheet] = pd.read_excel(xls, sheet_name=sheet)
# Доступ к данным по имени листа
print(df_dict['Лист1'].head())

Пояснение: pd.ExcelFile создает объект файла, позволяет обходить листы без повторного открытия.

Как создать пустую таблицу и добавить строки?

Пример
import pandas as pd

# пустой DataFrame с колонками
df = pd.DataFrame(columns=['Название', 'Количество', 'Цена'])
# добавление строк
df.loc[0] = ['Товар А', 10, 150.0]
df.loc[1] = ['Товар Б', 5, 300.0]
# через concat (современный метод)
new_row = {'Название': 'Товар В', 'Количество': 7, 'Цена': 200.0}
df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)
print(df)

Результат:

  Название  Количество    Цена
0   Товар А          10   150.0
1   Товар Б           5   300.0
2   Товар В           7   200.0

Пояснение: loc назначает строку по индексу, concat объединяет с новым фреймом и сбрасывает индексы.

Как объединить две таблицы?

Пример
import pandas as pd

orders = pd.DataFrame({'ID': [1,2,3], 'Товар': ['А','Б','В'], 'Кол-во': [10,5,7]})
prices = pd.DataFrame({'ID': [1,2,4], 'Цена': [150,300,200]})
merged = pd.merge(orders, prices, on='ID', how='outer')
print(merged)

Результат:

   ID Товар  Кол-во    Цена
0   1     А      10   150.0
1   2     Б       5   300.0
2   3     В       7     NaN
3   4   NaN     NaN   200.0

Пояснение: параметр how='outer' включает все ключи из обеих таблиц, недостающие значения заполняются NaN.

Создание таблиц в Python - comments

En
Python создание таблиц (python)