Різні типи об'єднань у Pandas

Різні типи об'єднань у Pandas

Модуль Pandas містить різноманітні функції для виконання різноманітних операцій над фреймами даних, таких як приєднання, конкатенація, видалення, додавання тощо. У цій статті ми обговоримо різні типи операцій з’єднання, які можна виконувати на Pandas. Кадр даних. Існує п’ять типів об’єднань панди .

  • Внутрішнє з'єднання
  • Ліве зовнішнє з'єднання
  • Праве зовнішнє з'єднання
  • Повне зовнішнє з'єднання або просто зовнішнє з'єднання
  • Приєднання до індексу

Щоб зрозуміти різні типи об’єднань, ми спочатку створимо два DataFrames, а саме a і b .

Кадр даних a:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a> => pd.DataFrame()> # Creating Dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 10> ,> 12> ],> > 'val1'> : [> 'a'> ,> 'b'> ,> 'c'> ,> 'd'> ]}> a> => pd.DataFrame(d)> # printing the dataframe> a>

Вихід:

DataFrame b:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe b> b> => pd.DataFrame()> # Creating dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 9> ,> 8> ],> > 'val1'> : [> 'p'> ,> 'q'> ,> 'r'> ,> 's'> ]}> b> => pd.DataFrame(d)> # printing the dataframe> b>

Вихід:

Типи об'єднань у Pandas

Ми будемо використовувати ці два Dataframes, щоб зрозуміти різні типи об’єднань.

панди Внутрішнє з'єднання

Внутрішнє об’єднання – це найпоширеніший тип об’єднання, з яким ви працюватимете. Він повертає Dataframe лише з тими рядками, які мають спільні характеристики. Це схоже на перетин двох множин.

Pandas Inner Join

приклад:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a> => pd.DataFrame()> # Creating Dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 10> ,> 12> ],> > 'val1'> : [> 'a'> ,> 'b'> ,> 'c'> ,> 'd'> ]}> a> => pd.DataFrame(d)> # Creating dataframe b> b> => pd.DataFrame()> # Creating dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 9> ,> 8> ],> > 'val1'> : [> 'p'> ,> 'q'> ,> 'r'> ,> 's'> ]}> b> => pd.DataFrame(d)> # inner join> df> => pd.merge(a, b, on> => 'id'> , how> => 'inner'> )> # display dataframe> df>

Вихід:

панди Зліва Приєднатися

З лівим зовнішнім об’єднанням відображатимуться всі записи з першого кадру даних, незалежно від того, чи можна знайти ключі в першому кадрі даних у другому кадрі даних. Тоді як для другого кадру даних відображатимуться лише записи з ключами у другому кадрі даних, які можна знайти в першому кадрі даних.

зліва-приєднатися приклад:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a> => pd.DataFrame()> # Creating Dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 10> ,> 12> ],> > 'val1'> : [> 'a'> ,> 'b'> ,> 'c'> ,> 'd'> ]}> a> => pd.DataFrame(d)> # Creating dataframe b> b> => pd.DataFrame()> # Creating dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 9> ,> 8> ],> > 'val1'> : [> 'p'> ,> 'q'> ,> 'r'> ,> 's'> ]}> b> => pd.DataFrame(d)> # left outer join> df> => pd.merge(a, b, on> => 'id'> , how> => 'left'> )> # display dataframe> df>

Вихід:

панди Праве зовнішнє з'єднання

Для правого об’єднання будуть відображені всі записи з другого кадру даних. Однак відображатимуться лише записи з ключами в першому кадрі даних, які можна знайти у другому кадрі даних.

Pandas Right Outer Join

приклад:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a> => pd.DataFrame()> # Creating Dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 10> ,> 12> ],> > 'val1'> : [> 'a'> ,> 'b'> ,> 'c'> ,> 'd'> ]}> a> => pd.DataFrame(d)> # Creating dataframe b> b> => pd.DataFrame()> # Creating dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 9> ,> 8> ],> > 'val1'> : [> 'p'> ,> 'q'> ,> 'r'> ,> 's'> ]}> b> => pd.DataFrame(d)> # right outer join> df> => pd.merge(a, b, on> => 'id'> , how> => 'right'> )> # display dataframe> df>

Вихід:

панди Повне зовнішнє з'єднання

Повне зовнішнє об’єднання повертає всі рядки з лівого фрейму даних і всі рядки з правого фрейму даних і зіставляє рядки, де це можливо, з NaN в інших місцях. Але якщо Dataframe завершений, ми отримуємо той самий результат.

Pandas Full Outer Join

приклад:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a> => pd.DataFrame()> # Creating Dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 10> ,> 12> ],> > 'val1'> : [> 'a'> ,> 'b'> ,> 'c'> ,> 'd'> ]}> a> => pd.DataFrame(d)> # Creating dataframe b> b> => pd.DataFrame()> # Creating dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 9> ,> 8> ],> > 'val1'> : [> 'p'> ,> 'q'> ,> 'r'> ,> 's'> ]}> b> => pd.DataFrame(d)> # full outer join> df> => pd.merge(a, b, on> => 'id'> , how> => 'outer'> )> # display dataframe> df>

Вихід:

Pandas Index Приєднатися

Щоб об’єднати Dataframe за індексами, передайте лівий_індекс і правий_індекс аргументи мають значення True, тобто обидва фрейми даних об’єднуються в індекс за допомогою внутрішнього об’єднання за замовчуванням.

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a> => pd.DataFrame()> # Creating Dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 10> ,> 12> ],> > 'val1'> : [> 'a'> ,> 'b'> ,> 'c'> ,> 'd'> ]}> a> => pd.DataFrame(d)> # Creating dataframe b> b> => pd.DataFrame()> # Creating dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 9> ,> 8> ],> > 'val1'> : [> 'p'> ,> 'q'> ,> 'r'> ,> 's'> ]}> b> => pd.DataFrame(d)> # index join> df> => pd.merge(a, b, left_index> => True> , right_index> => True> )> # display dataframe> df>

Вихід: