4-те типа съединявания на DataFrame, предлагани от библиотеката pandas на Python

4-те типа съединявания на DataFrame, предлагани от библиотеката pandas на Python

Като анализатор на данни често ще се сблъсквате с необходимостта да комбинирате множество набори от данни. Ще трябва да направите това, за да завършите анализа си и да стигнете до заключение за вашия бизнес/заинтересованите страни.





Често е предизвикателство да се представят данни, когато се съхраняват в различни таблици. При такива обстоятелства присъединяванията доказват своята стойност, независимо от езика за програмиране, върху който работите.





MAKEUSEOF ВИДЕО НА ДЕНЯ

Python съединенията са като SQL съединенията: те комбинират набори от данни чрез съпоставяне на техните редове в общ индекс.





Създайте два DataFrames за справка

За да следвате примерите в това ръководство, можете да създадете две примерни DataFrames. Използвайте следния код, за да създадете първия DataFrame, който съдържа ID, собствено име и фамилия.

как да запазя снимките си в instagram
import pandas as pd 

a = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny"],
"Lname": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber"]})
print(a)

За първата стъпка импортирайте панди библиотека. След това можете да използвате променлива, а , за да съхраните резултата от конструктора DataFrame. Предайте на конструктора речник, съдържащ необходимите ви стойности.



И накрая, покажете съдържанието на стойността на DataFrame с функцията за печат, за да проверите дали всичко изглежда както очаквате.

По подобен начин можете да създадете друга DataFrame, b , който съдържа ID и стойности на заплатите.





b = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"], 
"Salary": [100000, 700000, 80000, 904750, 604772]})

print(b)

Можете да проверите изхода в конзола или IDE. Той трябва да потвърди съдържанието на вашите DataFrames:

Как се различават присъединяванията от функцията за сливане в Python?

Библиотеката pandas е една от основните библиотеки, които можете да използвате за манипулиране на DataFrames. Тъй като DataFrames съдържа множество набори от данни, в Python са налични различни функции за обединяването им.





Python предлага функциите за присъединяване и сливане, сред много други, които можете да използвате за комбиниране на DataFrames. Има голяма разлика между тези две функции, която трябва да имате предвид, преди да използвате някоя от тях.

Функцията за присъединяване обединява две DataFrames въз основа на стойностите на техните индекси. The функцията за сливане комбинира DataFrames въз основа на стойностите на индекса и колоните.

Какво трябва да знаете за съединяванията в Python?

Преди да обсъдим наличните типове присъединявания, ето някои важни неща, които трябва да отбележите:

  • SQL съединенията са една от най-основните функции и са доста подобни на съединенията на Python.
  • За да се присъедините към DataFrames, можете да използвате pandas.DataFrame.join() метод.
  • Присъединяването по подразбиране изпълнява ляво присъединяване, докато функцията за сливане изпълнява вътрешно присъединяване.

Синтаксисът по подразбиране за присъединяване на Python е както следва:

DataFrame.join(other, on=None, how='left/right/inner/outer', lsuffix='', rsuffix='', 
sort=False)

Извикайте метода за присъединяване на първия DataFrame и подайте втория DataFrame като негов първи параметър, друго . Останалите аргументи са:

  • На , който назовава индекс, към който да се присъедините, ако има повече от един.
  • как , който дефинира типа свързване, включително вътрешно, външно, ляво и дясно.
  • lsuffix , който дефинира низа от левия суфикс на името на вашата колона.
  • rsuffix , който дефинира десния суфиксен низ на името на вашата колона.
  • вид , който е булево значение, което показва дали да се сортира получената DataFrame.

Научете се да използвате различните типове съединения в Python

Python има няколко опции за присъединяване, които можете да упражнявате в зависимост от нуждите на часа. Ето типовете присъединяване:

1. Ляво присъединяване

Лявото присъединяване запазва стойностите на първата DataFrame непокътнати, докато въвежда съвпадащите стойности от втората. Например, ако искате да въведете съответстващите стойности от b , можете да го дефинирате по следния начин:

c = a.join(b, how="left", lsuffix = "_left", rsuffix = "_right", sort = True) 
print(c)

Когато заявката се изпълни, изходът съдържа следните препратки към колони:

как да накарате капана да победи в гаражната лента
  • ID_left
  • Fname
  • Lname
  • ID_дясно
  • Заплата

Това присъединяване изтегля първите три колони от първата DataFrame и последните две колони от втората DataFrame. То е използвало lsuffix и rsuffix стойности, за да преименувате колоните с ID от двата набора от данни, като гарантирате, че имената на получените полета са уникални.

Резултатът е както следва:

  Код, показващ ляво съединение в Python's dataframes

2. Право присъединяване

Дясното присъединяване запазва стойностите на втората DataFrame непокътнати, като същевременно въвежда съответстващите стойности от първата таблица. Например, ако искате да въведете съответстващите стойности от а , можете да го дефинирате по следния начин:

c = b.join(a, how="right", lsuffix = "_right", rsuffix = "_left", sort = True) 
print(c)

Резултатът е както следва:

  Код, показващ дясно присъединяване в Python's dataframes

Ако прегледате кода, има няколко очевидни промени. Например резултатът включва колоните на втората DataFrame преди тези от първата DataFrame.

мога ли да използвам wifi в самолетен режим

Трябва да използвате стойност от точно за как аргумент за указване на дясно съединение. Също така имайте предвид как можете да превключите lsuffix и rsuffix стойности, които да отразяват естеството на правилното съединение.

Във вашите редовни съединения може да откриете, че използвате леви, вътрешни и външни съединения по-често в сравнение с дясното съединение. Използването обаче зависи изцяло от вашите изисквания за данни.

3. Вътрешно съединение

Вътрешното присъединяване доставя съответстващите записи от двата DataFrames. Тъй като съединенията използват индексните номера за съвпадение на редове, вътрешното свързване връща само редове, които съвпадат. За тази илюстрация нека използваме следните две DataFrames:

a = pd.DataFrame({"ID": ["001", "002", "003", "004", "005", "006", "007"], 
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny", "Daryl", "Cathy"],
"Lname": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber", "Hooper", "Hope"]})
b = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Salary": [100000, 700000, 80000, 904750, 604772]})

print(a)
print(b)

Резултатът е както следва:

  Създайте нови кадри с данни в Python

Можете да използвате вътрешно съединение, както следва:

c = a.join(b, lsuffix="_left", rsuffix="_right", how='inner') 
print(c)

Полученият изход съдържа само редове, които съществуват и в двата входни DataFrames:

  Код, показващ вътрешно съединение в Python's dataframes

4. Външно съединение

Външното присъединяване връща всички стойности от двата DataFrames. За редове без съвпадащи стойности, той произвежда нулева стойност за отделните клетки.

Използвайки същата DataFrame като по-горе, ето кодът за външно свързване:

c = a.join(b, lsuffix="_left", rsuffix="_right", how='outer') 
print(c)
  Код, показващ външно съединение в Python's dataframes

Използване на съединения в Python

Съединенията, подобно на съответните им функции merge и concat, предлагат много повече от обикновена функционалност за присъединяване. Като се има предвид серия от опции и функции, можете да изберете опциите, които отговарят на вашите изисквания.

Можете да сортирате получените набори от данни относително лесно, със или без функцията за присъединяване, с гъвкавите опции, които Python предлага.