Научная статья на тему 'ОБЪЕДИНЕНИЕ ТАБЛИЦ ДАННЫХ С ПОМОЩЬЮ БИБЛИОТЕКИ PANDAS ДЛЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ PYTHON'

ОБЪЕДИНЕНИЕ ТАБЛИЦ ДАННЫХ С ПОМОЩЬЮ БИБЛИОТЕКИ PANDAS ДЛЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ PYTHON Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
160
34
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
PYTHON / PANDAS / ТАБЛИЦЫ ДАННЫХ / СТОЛБЦЫ / СТРОКИ / DATAFRAME / ОБЪЕДИНЕНИЕ / МЕТОДЫ / ФУНКЦИИ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Дрянкова Д.А., Замулин И.С.

В статье рассматриваются способы объединения таблиц библиотеки Pandas языка программирования.The article discusses ways to combine the tables of the Pandas library of the programming language.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ОБЪЕДИНЕНИЕ ТАБЛИЦ ДАННЫХ С ПОМОЩЬЮ БИБЛИОТЕКИ PANDAS ДЛЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ PYTHON»

УДК 004.423

Информационные технологии

Дрянкова Дарья Александровна, студент факультета информатики и вычислительной техники, Хакасский государственный университет имени

Н.Ф. Катанова, г. Абакан, Россия Замулин Иван Сергеевич, заведующий кафедрой ПОВТиАС, Хакасский государственный университет имени Н.Ф. Катанова, г. Абакан, Россия

ОБЪЕДИНЕНИЕ ТАБЛИЦ ДАННЫХ С ПОМОЩЬЮ БИБЛИОТЕКИ PANDAS ДЛЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ PYTHON

Аннотация: В статье рассматриваются способы объединения таблиц библиотеки Pandas языка программирования.

Ключевые слова: Python, Pandas, таблицы данных, столбцы, строки, DataFrame, объединение, методы, функции.

Annotation: The article discusses ways to combine the tables of the Pandas library of the programming language.

Keywords: Python, Pandas, data tables, columns, rows, DataFrame, union, methods, functions.

Библиотека Pandas - это библиотека для работы с данными в формате таблиц на языке программирования Python. Она позволяет считывать, записывать и обрабатывать данные из различных источников, таких как файлы CSV, Excel, базы данных SQL и другие.

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

Конкатенация и объединение таблиц - важные операции при работе с данными. Pandas предоставляет множество методов для выполнения этих задач, включая метод join(), который объединяет две таблицы на основе значений в индексе или столбцах [1].

Рассмотрим пример, где мы будем объединять две таблицы по общему столбцу с помощью метода join(). Допустим, у нас есть две таблицы df1 и df2, содержащие информацию о продажах компании по месяцам, они изображены на рисунке 1.

Рисунок 1 - Таблицы с информацией о продажах компании

На рисунке 2 изображено содержание таблицы данных df1 и df2.

>>> >>>

dfl

Месяц 3 Январь

1 Февраль

2 Март

3 Апрель

Продажи 13 3 233 153

333

df 2

3 1 2 3

Месяц Апрель Май Люнь Люль

Прсде.жи 253 153 233 353

Рисунок 2 - Содержание таблиц данных dfl и df2

Мы хотим объединить эти таблицы по столбцу "Месяц". Для этого мы можем использовать метод join() способом, изображенном на рисунке 3.

df3 = elf 1. join (elf 2 . set Index ( 'Месяц' } , on=пМесяцr, rsuffix=' 2'} df 3

Месяц Продажи Продажи 2

0 Январь 100 NaN

1 Февраль 200 NaN

2 Март 15 0 NaN

3 Апрель 300 25 0.0

Рисунок 3 - Объединение таблиц данных с помощью метода join()

В этом примере мы сначала установили индекс таблицы df2 на столбец "Месяц", используя метод set_index(). Затем мы объединили таблицы с помощью метода join(), указав "Месяц" как ключ объединения. Мы также использовали аргумент rsuffix-_2', чтобы указать, что столбец "Продажи" из таблицы df2 должен быть переименован в "Продажи_2", чтобы избежать конфликтов имен.

Помимо метода join() существует ещё несколько способов объединения таблиц данных. К примеру метод merge(), объединяющий две таблицы в одну на основе заданных столбцов. Аналогично предыдущей функции merge также объединяет все столбцы из двух таблиц с общими столбцами. Но в отличие от join, merge уже предлагает три способа организации построчного выравнивания:

1) on = 'название столбца' - объединяющий таблицы по общему столбцу;

2) left_on on = 'название столбца', right_on on = 'название столбца' -позволяющий объединить две таблицы, используя два разных столбца;

3) left_index = True, right_index = True - объединяющий таблицы по индексам;

Мы рассмотрим способ объединения с использованием первого из перечисленных выше способов.

На рисунке 4 изображено использование метода merge() с объединением таблиц по столбцу on = 'id'.

>>> >>>

>>> import pandas аз pd >» dfl = pd. DataFrame ( {

■id1: [1, 2, 3, 4, 5],

■name1: ['Alice1, "Bob", 'Charlie1, "David", "Emily"] "age": [25, 32, IS, 47, 22],

>» df 2 = ра.иаЬаРгале( {

1: [1, 2, 3, 4, 5], ... "вссге": [80, 50, 70, 85, 55],

н

>» df 3 = pd.if.erge df 2, оп =,id^}

Рисунок 4 - Использование метода шег§е() для объединения двух таблиц данных

На рисунке 5 изображено содержание таблиц dfl и df2, а также результат их соединения с помощью merge в таблице данных df3.

»> dfl

id

паше age Alice 25

0 1

1 2

2 3

3 4

4 5

3 Charlie

David 47 Emily 22

Bob 32 lie ie

»> df 2

id score

0 1

1 2

2 3

3 4

4 5

eo

50 70 S5 55

>>> df3

id

паше age score

0 1

1 2

2 3

3 4

4 5

1 Alice 25 ЁЭ

2 Bob 32 5 3

3 Charlie IB 70

4 David 47 £5

5 Emily 22 55

Рисунок 5 - Содержание таблиц dfl, df2 и df3

Следующим методом объединения является метод сопса1:(), позволяющий объединить таблицы вертикально или горизонтально. На рисунке 6 приведён пример использования данного метода.

>>>

>>>

>>> >>>

>>> >>> >>>

import pandas as pd

# Создакие тербой таблицы dfl = pd.DataFrame ({

А" ["АО1, ■Al1 , 1А2 1 , ■А 3

В" [1 ВО 1 , ■Bl" , 1 В2 1 , ■В 3

С1 [1 СО 1, ■С 1" , 1 С2 1 , ■с 3

D1 [1 DO 1, ■Dl" , 1 D2 1 , ' D3

# Создакие второй таблицы df2 = pd.DataFrame ({

А" ["A41, ■А5 1 , ■Аб" , 1А7

В" [1В4 1 , 1 В5 1 , ■Вб" , 1 В7

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

С1 [1С4 1 , 1 С5 1 , ■С6" , 1 С7

D1 ["D41, 1 D 5 1 , 1 D61 , 1 D7

resl res2

pd.concat([dfl, df2], axis=0} pd.concat([dfl, df2], axis=l}

Рисунок 6 - Объединение таблиц с помощью метода concat()

В параметре функции необходимо прописать axis = 0 или axis = 1, соответственно вписанному значению в resl происходит вертикальное объединение таблиц, а в res2 происходит горизонтальное объединение.

При выводе таблиц resl и res2 получится результат, изображенный на рисунке 7.

>>>

>>>

resl

А В С D

0 АО ВО СЗ DO

1 Al В1 С1 Dl

2 А2 В2 С2 D2

3 A3 ВЗ СЗ D3

0 A4 В4 С4 D4

1 AS В5 CS D5

2 А6 В6 се D6

3 А7 В7 С7 D7

res2

А В С D А В С D

0 АО ВО СЗ DO A4 В4 С4 D4

1 Al В1 С1 Dl AS BS CS D5

2 А2 В2 С2 D2 А6 В6 се D6

3 A3 ВЗ СЗ D3 А7 В7 С7 D7

Рисунок 7 - Содержание таблиц объединенных в res 1 и res2

Также нужно заметить, что отличии от join и merge, concat позволяет работать как со столбцами, так и со строками, но не дает переименовывать

строки или столбцы.

Последним методом объединения является append(), котрый используется для объединения строк одной таблицы с другой таблицей или DataFrame. Этот метод создает новый объект DataFrame, содержащий соединенные строки.

На рисунке 8 приведён пример использования метода append() для объединения двух таблиц.

2 S 12

Рисунок 8 - Объединение таблиц с помощью метода append()

Также, столбцы, не входящие в исходный датафрейм, добавляются как новые столбцы, а новые ячейки заполняются значениями NN.

На рисунке 9 представлен пример того, как метод арре^() также может использоваться для добавления новых строк в существующую таблицу.

Рисунок 9 - Добавление строк в существующую таблицу с помощью метода аррепё()

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

Заключение

Библиотека Pandas предоставляет мощные инструменты для объединения DataFrames. Но бывает сложно решить, когда что использовать. Хотя в большинстве случаев функции merge достаточно, в некоторых случаях вы можете использовать concat для слияния по строкам, или использовать join. Также существует возможность добавления строк данных с помощью append() [2].

Библиографический список:

1. Яворски М., Зиаде Т. Python. Лучшие практики и инструменты [Текст] / Яворски М., Зиаде Т. - СПб.: Питер, 2021. - 560 с. ISBN: 978-5-44611589-1.

2. Марк Саммерфилд. Python на практике [Текст] / Марк Саммерфилд. - М.: ДМК-Пресс, 2016. - 338 с. ISBN: 978-5-97060-095-5.

i Надоели баннеры? Вы всегда можете отключить рекламу.