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

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

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

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

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

импортиране панди като пд

a = pd. DataFrame({"документ за самоличност": ["001", "002", "003", "004", "005"],
"Fname": ["Рон", "Джон", "Хелън", "Джени", "Кени"],
"Lname": ["Кийт", "Харли", "Смит", "Кер-Хислоп", "бръснар"]})
печат(а)

instagram viewer

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

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

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

b = pd. DataFrame({"документ за самоличност": ["001", "002", "003", "004", "005"],
"Заплата": [100000, 700000, 80000, 904750, 604772]})

печатб)

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

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

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

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

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

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

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

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

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

DataFrame.join (other, on=None, how='ляво/дясно/вътрешно/външно', lsuffix='', rsuffix='',
сортиране=Невярно)

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

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

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

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

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

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

c = a.join (b, как="наляво", lsuffix = "_наляво", rsuffix = "_право", сортиране = вярно)
печат(° С)

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

  • ID_left
  • Fname
  • Lname
  • ID_дясно
  • Заплата

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

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

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

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

c = b.join (a, how="точно", lsuffix = "_право", rsuffix = "_наляво", сортиране = вярно)
печат(° С)

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

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

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

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

3. Вътрешно присъединяване

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

a = pd. DataFrame({"документ за самоличност": ["001", "002", "003", "004", "005", "006", "007"],
"Fname": ["Рон", "Джон", "Хелън", "Джени", "Кени", "Дарил", "Кати"],
"Lname": ["Кийт", "Харли", "Смит", "Кер-Хислоп", "бръснар", "Хупър", "надежда"]})
b = pd. DataFrame({"документ за самоличност": ["001", "002", "003", "004", "005"],
"Заплата": [100000, 700000, 80000, 904750, 604772]})

печат(а)
печатб)

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

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

c = a.join (b, lsuffix="_наляво", rsuffix="_право", как='атрешна')
печат(° С)

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

4. Външно присъединяване

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

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

c = a.join (b, lsuffix="_наляво", rsuffix="_право", как='външен')
печат(° С)

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

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

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