Инструменты работы с табличными данными на Python

Раздел: Библиотеки -> Работа с библиотеками для данных

Основные библиотеки для работы с таблицами

Как обрабатывать таблицы с помощью Pandas?

Pandas - стандартный инструмент для анализа данных. Позволяет читать, преобразовывать и анализировать таблицы.

Пример:

import pandas as pd
df = pd.read_csv('data.csv')
print(df.head())

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

Загрузка CSV, первые 5 строк.

Типичные ошибки:

  • Нехватка памяти при больших файлах - использовать чанки или типы данных.
  • Ошибки при чтении - проверять разделитель и кодировку.

Как ускорить работу с большими таблицами?

Polars - быстрая альтернатива Pandas, использующая Rust и ленивые вычисления.

import polars as pl
df = pl.read_csv('large.csv')
print(df.filter(pl.col('age') > 30))

математическая библиотека python (математическая библиотека в python)

Фильтрация без загрузки всего набора в память (ленивый режим).

Проблемы:

  • Отсутствие поддержки некоторых функций Pandas.
  • Различия в синтаксисе.

Как читать и записывать Excel файлы?

Openpyxl - библиотека для работы с .xlsx.

from openpyxl import load_workbook
wb = load_workbook('file.xlsx')
ws = wb.active
for row in ws.iter_rows(values_only=True):
    print(row)

Чтение строк таблицы.

Ошибки:

  • Картинки и макросы могут быть потеряны.
  • Большие файлы - медленнее Pandas.
Как вывести таблицу в красивом виде в консоли?

Tabulate форматирует данные в читаемые строки.

from tabulate import tabulate
data = [['Alice', 25], ['Bob', 30]]
headers = ['Name', 'Age']
print(tabulate(data, headers=headers, tablefmt='grid'))

Вывод с сеткой.

Ограничения:

  • Только для вывода, не для обработки.

Продвинутая группировка и сводные таблицы в Pandas

Пример:

Пример
import pandas as pd
df = pd.DataFrame({
    'city': ['Moscow', 'SPB', 'Moscow', 'SPB', 'Kazan'],
    'sales': [100, 150, 200, 50, 120],
    'year': [2022, 2022, 2023, 2023, 2022]
})
pivot = df.pivot_table(index='city', columns='year', values='sales', aggfunc='sum').fillna(0)
print(pivot)
year    2022  2023
city             
Kazan   120     0
Moscow  100   200
SPB     150    50

Группировка по городам и годам с суммой продаж.

Ленивые вычисления в Polars

Пример с несколькими операциями:

Пример
import polars as pl
df = pl.read_csv('sales.csv')
q = (df.lazy()
     .filter(pl.col('date').dt.year() == 2022)
     .group_by('product')
     .agg(pl.col('revenue').sum())
     .sort('revenue', descending=True))
result = q.collect()
print(result)
shape: (3, 2)
product   revenue
A         15000
B         12000
C         8000

Ленивый план позволяет оптимизировать выполнение.

Создание Excel файла с формулами и стилями в Openpyxl

Пример:

Пример
from openpyxl import Workbook
from openpyxl.styles import Font, Alignment
wb = Workbook()
ws = wb.active
ws.append(['Item', 'Price', 'Quantity', 'Total'])
ws.append(['Apple', 1.2, 10])
ws.append(['Banana', 0.8, 15])
ws['D2'] = '=B2*C2'
ws['D3'] = '=B3*C3'
ws['A1'].font = Font(bold=True, size=14)
ws.column_dimensions['A'].width = 15
wb.save('products.xlsx')
Файл products.xlsx создан с формулами в столбце D и стилями заголовка.

Настройка вывода через Tabulate для разных форматов

Пример с HTML и Markdown:

Пример
from tabulate import tabulate
data = [['Alice', 25], ['Bob', 30], ['Charlie', 35]]
headers = ['Name', 'Age']
html_table = tabulate(data, headers=headers, tablefmt='html')
markdown_table = tabulate(data, headers=headers, tablefmt='pipe')
print('HTML:')
print(html_table)
print('\nMarkdown:')
print(markdown_table)
HTML:
<table>
<thead>
<tr><th>Name</th><th>Age</th></tr>
</thead>
<tbody>
<tr><td>Alice</td><td>25</td></tr>
<tr><td>Bob</td><td>30</td></tr>
<tr><td>Charlie</td><td>35</td></tr>
</tbody>
</table>

Markdown:
| Name   | Age |
|--------|-----|
| Alice  |  25 |
| Bob    |  30 |
| Charlie|  35 |

Tabulate позволяет экспортировать таблицы в разные форматы.

Библиотеки для работы с таблицами в Python - comments

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