Різні типи об'єднань у 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 лише з тими рядками, які мають спільні характеристики. Це схоже на перетин двох множин.
приклад:
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> |
Вихід:
панди Праве зовнішнє з'єднання
Для правого об’єднання будуть відображені всі записи з другого кадру даних. Однак відображатимуться лише записи з ключами в першому кадрі даних, які можна знайти у другому кадрі даних.
приклад:
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 завершений, ми отримуємо той самий результат.
приклад:
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> |
Вихід: