Содержание статьи

Python позволяет создавать таблицы различными способами в зависимости от формата данных и задач. Для простых структур можно использовать встроенные списки и словари, которые позволяют хранить строки и столбцы в виде вложенных коллекций. Такой подход подходит для небольших таблиц и быстрых вычислений без подключения сторонних библиотек.
Для работы с объемными или структурированными данными рекомендуется использовать библиотеку pandas. DataFrame предоставляет возможность хранить данные с индексами, задавать имена столбцов, выполнять фильтрацию, сортировку и агрегацию. Pandas поддерживает чтение и запись таблиц из форматов CSV, Excel и SQL, что упрощает интеграцию с внешними источниками.
При импорте таблиц из CSV-файлов важно указывать корректную кодировку и разделители, чтобы избежать искажений данных. Для Excel-файлов стоит выбирать библиотеку openpyxl или встроенные функции pandas, что позволяет работать с отдельными листами и форматированием ячеек. Добавление, удаление и изменение строк и столбцов в pandas выполняется методами append, drop и прямым присвоением значений.
Фильтрация и сортировка данных позволяет быстро находить нужные записи и подготавливать таблицу для анализа. Для объединения нескольких таблиц можно использовать методы merge и concat, что удобно при работе с базами данных или отчетами из разных источников. Правильное управление индексами и типами данных ускоряет операции и предотвращает ошибки при обработке больших объемов информации.
Создание таблицы с помощью встроенных списков

В Python таблицу можно представить как список списков, где каждый вложенный список соответствует строке данных. Такой подход подходит для небольших наборов информации, где нет необходимости в сложной индексации или интеграции с внешними источниками.
Пример создания таблицы 3×3 с числами:
table = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
Для доступа к элементам используют двойную индексацию:
- table[0][1] вернет 2 – элемент первой строки, второго столбца.
- Изменение значения выполняется присваиванием: table[2][0] = 10.
Добавление строк и столбцов:
- Добавить строку: table.append([10, 11, 12])
- Добавить столбец к каждой строке: for row in table: row.append(0)
Удаление элементов:
- Удалить строку: table.pop(1) – удаляет вторую строку.
- Удалить столбец: for row in table: del row[2] – удаляет третий столбец у каждой строки.
Перебор таблицы выполняется вложенными циклами:
for row in table:
for value in row:
print(value, end=' ')
print()
Использование встроенных списков обеспечивает максимальный контроль над структурой данных и минимальные накладные расходы, однако при увеличении объема таблиц или необходимости работы с фильтрацией и сортировкой удобнее переходить на специализированные структуры, такие как pandas DataFrame.
Использование библиотеки pandas для построения DataFrame
DataFrame в pandas представляет таблицу с индексами строк и именами столбцов, что упрощает обработку данных и выполнение аналитических операций. Для создания таблицы достаточно передать словарь списков или массивов в конструктор pd.DataFrame.
Пример создания DataFrame с тремя столбцами:
import pandas as pd
data = {
'Имя': ['Аня', 'Борис', 'Виктор'],
'Возраст': [25, 30, 28],
'Город': ['Москва', 'Киев', 'Минск']
}
df = pd.DataFrame(data)
Для выбора конкретного столбца используется синтаксис df[‘Название столбца’], а для нескольких столбцов – df[[‘Столбец1’, ‘Столбец2’]]. Доступ к строкам возможен через iloc или loc, например df.iloc[0] вернет первую строку, а df.loc[1, ‘Город’] – значение конкретной ячейки.
Добавление новых столбцов выполняется присваиванием: df[‘Новый столбец’] = [значения]. Удаление через df.drop(columns=[‘Столбец’]). Изменение значений возможно напрямую через индексацию или функции apply для преобразования целого столбца.
DataFrame поддерживает сортировку: df.sort_values(by=’Возраст’) сортирует по возрасту, а фильтрация выполняется через булевы маски: df[df[‘Возраст’] > 26]. Такие возможности упрощают работу с таблицами, содержащими сотни или тысячи строк, сохраняя при этом читаемость кода и контроль над структурой данных.
Чтение таблицы из CSV-файла в Python

Для загрузки таблиц из CSV-файлов в Python чаще всего используют библиотеку pandas, которая автоматически распознает строки, столбцы и заголовки. Основная функция – pd.read_csv(), позволяющая задать кодировку, разделитель и столбцы для индексации.
Пример загрузки CSV с явным указанием кодировки и разделителя:
import pandas as pd
df = pd.read_csv('data.csv', encoding='utf-8', sep=',')
print(df.head())
Если CSV-файл содержит лишние строки или комментарии, их можно пропустить с помощью параметра skiprows. Пустые строки автоматически игнорируются, но для контроля можно использовать skip_blank_lines=False.
Для больших файлов полезен параметр chunksize, который позволяет считывать данные частями. Это снижает потребление памяти и позволяет обрабатывать таблицу по блокам.
С помощью pandas после чтения легко выполнять фильтрацию по условиям, сортировку по столбцам и преобразование типов. Для проверки корректности данных применяют df.info() и df.describe().
Альтернативный вариант – встроенный модуль csv. Он обеспечивает построчное чтение через csv.reader и позволяет контролировать разделители и обработку кавычек:
import csv
with open('data.csv', newline='', encoding='utf-8') as file:
reader = csv.reader(file, delimiter=',')
table = [row for row in reader]
Использование pandas предпочтительнее для анализа и обработки данных, а модуль csv подходит для простого извлечения строк и хранения их в списках.
Сохранение таблицы в Excel с помощью pandas
Библиотека pandas позволяет сохранять DataFrame в Excel с помощью функции to_excel(). Это удобно для передачи данных между системами и создания отчетов.
Пример сохранения DataFrame в файл Excel:
import pandas as pd
data = {
'Имя': ['Аня', 'Борис', 'Виктор'],
'Возраст': [25, 30, 28],
'Город': ['Москва', 'Киев', 'Минск']
}
df = pd.DataFrame(data)
df.to_excel('output.xlsx', index=False)
Параметр index=False исключает добавление индексов строк в файл. Если требуется сохранить несколько листов, используют ExcelWriter:
with pd.ExcelWriter('multi_sheet.xlsx') as writer:
df.to_excel(writer, sheet_name='Лист1', index=False)
df.to_excel(writer, sheet_name='Лист2', index=False)
Для проверки содержимого Excel-файла удобно создать таблицу с примерными данными:
| Имя | Возраст | Город |
|---|---|---|
| Аня | 25 | Москва |
| Борис | 30 | Киев |
| Виктор | 28 | Минск |
Функция to_excel() поддерживает настройку кодировки, форматирования и сохранение формул, что позволяет готовить файлы Excel для анализа и отчетности без дополнительной ручной работы.
Добавление и удаление строк и столбцов в таблице

В pandas добавление строк и столбцов выполняется с помощью присваивания или методов append и insert. Для добавления нового столбца достаточно присвоить список значений существующему DataFrame:
import pandas as pd
df = pd.DataFrame({
'Имя': ['Аня', 'Борис'],
'Возраст': [25, 30]
})
df['Город'] = ['Москва', 'Киев']
Для добавления строки используют метод append с передачей словаря:
new_row = {'Имя': 'Виктор', 'Возраст': 28, 'Город': 'Минск'}
df = df.append(new_row, ignore_index=True)
Удаление столбцов осуществляется методом drop с указанием имени и параметра axis=1:
df = df.drop(columns=['Город'])
Удаление строк происходит через drop с указанием индекса и axis=0 или напрямую через булеву маску:
df = df.drop(index=1) # удаление второй строки
df = df[df['Возраст'] > 25] # удаление строк с возрастом ≤ 25
Для вставки столбца в определенную позицию используется метод insert с указанием индекса позиции и имени столбца. Такой подход сохраняет порядок данных и упрощает работу с большими таблицами.
Фильтрация данных в таблице по условиям

В pandas фильтрация данных выполняется через булевы маски, позволяющие выбирать строки, соответствующие заданным критериям. Для одного условия используют прямое сравнение:
import pandas as pd
df = pd.DataFrame({
'Имя': ['Аня', 'Борис', 'Виктор'],
'Возраст': [25, 30, 28],
'Город': ['Москва', 'Киев', 'Минск']
})
filtered = df[df['Возраст'] > 26]
Для нескольких условий применяют логические операторы & (и) и | (или) с обязательным заключением каждого условия в скобки:
filtered = df[(df['Возраст'] > 25) & (df['Город'] == 'Киев')]
Фильтрация по списку значений выполняется через метод isin():
filtered = df[df['Город'].isin(['Москва', 'Минск'])]
Для работы с текстовыми данными применяют методы строк, например str.contains() для поиска подстрок:
filtered = df[df['Имя'].str.contains('Ви')]
Дополнительно можно использовать фильтрацию по индексу через df.loc или df.query() для более сложных выражений:
- df.loc[df[‘Возраст’] > 25, [‘Имя’, ‘Город’]] – выбрать только определенные столбцы.
- df.query(«Возраст > 25 && Город == ‘Киев'») – фильтрация через строковое выражение.
Использование этих методов позволяет быстро выделять подмножества данных и подготавливать таблицу для дальнейшего анализа или визуализации.
Сортировка таблицы по значениям столбцов

В pandas сортировка выполняется методом sort_values(), позволяющим упорядочивать строки по одному или нескольким столбцам. Параметр ascending задает направление: True – по возрастанию, False – по убыванию.
Пример сортировки по одному столбцу:
import pandas as pd
df = pd.DataFrame({
'Имя': ['Аня', 'Борис', 'Виктор'],
'Возраст': [25, 30, 28]
})
df_sorted = df.sort_values(by='Возраст', ascending=True)
Для сортировки по нескольким столбцам используют список имен столбцов и соответствующий список направлений:
df_sorted = df.sort_values(by=['Возраст', 'Имя'], ascending=[True, False])
Метод sort_values() создает новую таблицу. Чтобы изменить существующий DataFrame на месте, используют параметр inplace=True:
df.sort_values(by='Возраст', ascending=True, inplace=True)
Сортировка упрощает анализ и подготовку отчетов, позволяя быстро выявлять минимальные и максимальные значения, а также формировать упорядоченные таблицы для дальнейшей визуализации.
Объединение и соединение нескольких таблиц

В pandas для объединения таблиц применяются функции concat() и merge(). concat() позволяет объединять DataFrame по вертикали или горизонтали без учета ключей:
import pandas as pd
df1 = pd.DataFrame({'Имя': ['Аня', 'Борис'], 'Возраст': [25, 30]})
df2 = pd.DataFrame({'Имя': ['Виктор'], 'Возраст': [28]})
df_combined = pd.concat([df1, df2], ignore_index=True)
Для соединения таблиц по общему столбцу используется merge(). Параметр on задает ключ, а how определяет тип соединения:
- inner – только общие строки
- left – все строки из левой таблицы
- right – все строки из правой таблицы
- outer – все строки из обеих таблиц
Пример соединения по столбцу «Имя»:
df1 = pd.DataFrame({'Имя': ['Аня', 'Борис'], 'Возраст': [25, 30]})
df2 = pd.DataFrame({'Имя': ['Борис', 'Виктор'], 'Город': ['Киев', 'Минск']})
df_merged = pd.merge(df1, df2, on='Имя', how='inner')
Объединение и соединение позволяют работать с данными из разных источников, поддерживать согласованность таблиц и готовить комплексные наборы данных для анализа или визуализации.
Вопрос-ответ:
Как создать таблицу в Python без использования сторонних библиотек?
Для простых таблиц можно использовать встроенные списки. Каждая строка таблицы оформляется как вложенный список, а таблица в целом — как список этих строк. Доступ к элементам выполняется через двойную индексацию: table[строка][столбец]. Для добавления строк применяют append, для столбцов — циклическое добавление элементов в каждую строку.
Какие преимущества дает использование pandas для создания таблиц?
Pandas позволяет хранить данные в DataFrame с индексами и именами столбцов, что упрощает фильтрацию, сортировку и объединение таблиц. DataFrame легко импортировать из CSV, Excel и SQL, а встроенные методы позволяют менять значения, добавлять и удалять строки и столбцы без ручного перебора элементов.
Как корректно читать CSV-файл с русскими символами в Python?
При чтении CSV через pandas указывают кодировку, например encoding=’utf-8′, и правильный разделитель через sep. Если файл содержит пустые строки или строки заголовков, их можно пропустить с помощью skiprows и skip_blank_lines. Для больших файлов удобен параметр chunksize, который позволяет обрабатывать данные частями.
Какие методы позволяют фильтровать строки таблицы по условиям?
Фильтрацию выполняют через булевы маски. Для числовых условий используют операторы сравнения, для нескольких условий — & и | с скобками. Для проверки наличия значений в списке используют isin(), для работы с текстом — str.contains(). Также можно использовать df.query() для сложных выражений.
Как объединять несколько таблиц по общему столбцу?
В pandas для соединения таблиц применяют merge(). Параметр on задает общий столбец, а how — тип соединения: inner оставляет только совпадающие строки, left — все строки из левой таблицы, right — все строки из правой, outer — все строки из обеих таблиц. Для простого объединения без ключей используют concat().
Как добавить новый столбец в существующую таблицу pandas и сразу заполнить его вычисленными значениями?
Чтобы добавить столбец, используют присваивание: df[‘Новый столбец’] = значения. Если нужно вычислить значения на основе других столбцов, применяют операции между столбцами или метод apply(). Например, df[‘Возраст плюс 5’] = df[‘Возраст’] + 5 создаст новый столбец, где к каждому возрасту добавлено 5 лет. Такой подход сохраняет структуру DataFrame и позволяет быстро обновлять данные.
