Инструменты работы с табличными данными на 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 позволяет экспортировать таблицы в разные форматы.