Инструменты Python для таблиц: от базовых структур до pandas

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

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

Наиболее эффективное решение: библиотека pandas

Pandas предоставляет структуру DataFrame, специально предназначенную для табличных данных. Она поддерживает фильтрацию, группировку, объединение, работу с пропусками и импорт/экспорт в CSV, Excel, SQL.

Установка:

pip install pandas

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

Пример создания таблицы и базовых операций:


import pandas as pd

data = {
    'Имя': ['Анна', 'Борис', 'Виктор'],
    'Возраст': [25, 30, 35],
    'Город': ['Москва', 'СПб', 'Казань']
}
df = pd.DataFrame(data)
print(df)
  

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

Результат:

      Имя  Возраст   Город
0    Анна       25  Москва
1   Борис       30     СПб
2  Виктор       35  Казань
  

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

Фильтрация строк:


older = df[df['Возраст'] > 28]
print(older)
  

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

Результат:

      Имя  Возраст Город
1   Борис       30   СПб
2  Виктор       35  Казань
  

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

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

  • Ошибка KeyError при обращении к несуществующему столбцу.
  • Проблемы с типом данных: столбец может быть объектом вместо числа. Используйте pd.to_numeric() для преобразования.
  • Пропуски (NaN) могут искажать вычисления. Применяйте df.dropna() или df.fillna().
  • При загрузке больших CSV укажите chunksize для экономии памяти.

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

Простая структура без внешних библиотек. Подходит для небольших данных и учебных задач.


table = [
    ['Имя', 'Возраст', 'Город'],
    ['Анна', 25, 'Москва'],
    ['Борис', 30, 'СПб'],
    ['Виктор', 35, 'Казань']
]
for row in table:
    print(row)
  

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

Результат:

['Имя', 'Возраст', 'Город']
['Анна', 25, 'Москва']
['Борис', 30, 'СПб']
['Виктор', 35, 'Казань']
  

Python 3 таблица (таблица в python 3)

Проблемы:

  • Сложно обращаться к столбцам по имени – только по индексу.
  • Нет встроенных методов для фильтрации и группировки.
  • Ручное копирование структур приводит к ошибкам.

Как работать с таблицей через словарь списков?

Удобно для хранения по столбцам. Каждому столбцу соответствует ключ и список значений.


data = {
    'Имя': ['Анна', 'Борис', 'Виктор'],
    'Возраст': [25, 30, 35],
    'Город': ['Москва', 'СПб', 'Казань']
}
# Доступ к столбцу
print(data['Имя'])
  

язык программирования python таблица (таблица в языке python)

Результат:

['Анна', 'Борис', 'Виктор']
  

Python таблица ввода (таблица ввода в python)

Проблемы:

  • Нельзя легко получить строку – нужно собирать её по индексам.
  • Длина всех списков должна совпадать, иначе возникнет ошибка.
  • Неэффективно для больших таблиц из-за копирования.

Как загрузить таблицу из CSV без pandas?

Используйте встроенный модуль csv.


import csv

with open('data.csv', 'r', encoding='utf-8') as f:
    reader = csv.DictReader(f)
    for row in reader:
        print(row['Имя'], row['Возраст'])
  

Python таблица данных (таблица данных в python)

Для записи:


with open('output.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerow(['Имя', 'Возраст'])
    writer.writerow(['Анна', 25])
  

Python таблица значений (таблица значений в python)

Проблемы:

  • Ручное управление разделителями и кодировками.
  • Отсутствие типизации – все данные строки.
  • Не подходит для сложных операций (группировка, объединение).

Как использовать библиотеку openpyxl для Excel?

Для чтения и записи таблиц в формате .xlsx.


from openpyxl import Workbook

wb = Workbook()
ws = wb.active
ws.title = 'Таблица'
ws.append(['Имя', 'Возраст'])
ws.append(['Анна', 25])
wb.save('example.xlsx')
  

Python таблица переменных (таблица переменных в python)

Чтение:


from openpyxl import load_workbook

wb = load_workbook('example.xlsx')
ws = wb.active
for row in ws.iter_rows(values_only=True):
    print(row)
  

Python таблица функций (таблица функций в python)

Результат:

('Имя', 'Возраст')
('Анна', 25)
  

Проблемы:

  • Работает только с .xlsx, не поддерживает .xls.
  • Нет встроенной обработки пропусков.
  • Сложнее анализировать данные без дополнительных циклов.

Расширенные примеры работы с таблицами в Python с использованием pandas, включая нестандартные сценарии.

Пример 1: Объединение таблиц (merge)

Пример

import pandas as pd

df1 = pd.DataFrame({'ID': [1,2,3], 'Имя': ['Анна','Борис','Виктор']})
df2 = pd.DataFrame({'ID': [2,3,4], 'Зарплата': [50000, 60000, 70000]})

# Внутреннее соединение
merged = pd.merge(df1, df2, on='ID', how='inner')
print(merged)

Результат:

   ID    Имя  Зарплата
0   2  Борис     50000
1   3  Виктор     60000

Пример 2: Группировка с агрегацией

Пример

import pandas as pd

df = pd.DataFrame({
    'Отдел': ['IT', 'IT', 'HR', 'HR'],
    'Зарплата': [80000, 90000, 50000, 55000]
})
grouped = df.groupby('Отдел')['Зарплата'].agg(['mean', 'sum'])
print(grouped)

Результат:

          mean    sum
Отдел                
HR     52500.0 105000
IT     85000.0 170000

Пример 3: Сводная таблица (pivot_table)

Пример

import pandas as pd

df = pd.DataFrame({
    'Год': [2020,2020,2021,2021],
    'Продукт': ['A','B','A','B'],
    'Продажи': [100, 200, 150, 250]
})
pivot = df.pivot_table(values='Продажи', index='Год', columns='Продукт', aggfunc='sum')
print(pivot)

Результат:

Продукт    A    B
Год             
2020     100  200
2021     150  250

Пример 4: Работа с датами и временными рядами

Пример

import pandas as pd

df = pd.DataFrame({
    'Дата': pd.date_range('2023-01-01', periods=3, freq='D'),
    'Значение': [10, 20, 30]
})
df['Месяц'] = df['Дата'].dt.month
df['День_недели'] = df['Дата'].dt.day_name()
print(df)

Результат:

        Дата  Значение  Месяц День_недели
0 2023-01-01        10      1    Sunday
1 2023-01-02        20      1    Monday
2 2023-01-03        30      1   Tuesday

Пример 5: Обработка пропусков (fillna с методом)

Пример

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, np.nan, 3],
    'B': [4, 5, np.nan]
})
# Заполнение пропусков предыдущим значением
df_filled = df.fillna(method='ffill')
print(df_filled)

Результат:

     A    B
0  1.0  4.0
1  1.0  5.0
2  3.0  5.0

Пример 6: Импорт из JSON с вложенными структурами

Пример

import pandas as pd
import json

data_json = '''[
    {"name": "Анна", "info": {"age": 25, "city": "Москва"}},
    {"name": "Борис", "info": {"age": 30, "city": "СПб"}}
]'''
data = json.loads(data_json)
df = pd.json_normalize(data)
print(df)

Результат:

    name  info.age info.city
0   Анна        25     Москва
1  Борис        30        СПб

Таблица в языке Python - comments

En
язык программирования python таблица (python)