панди

Как да се присъедините към DataFrames в Pandas Python?

Как да се присъедините към DataFrames в Pandas Python?
Pandas DataFrame е двуизмерна (2D) структура от данни, която е подравнена в табличен формат. Тези DataFrames могат да се комбинират с помощта на различни методи като concat (), merge () и присъединявания. Пандите имат висока производителност и пълнофункционални операции по присъединяване, които приличат на SQL релационна база данни. Използвайки функцията за сливане, операциите за присъединяване могат да бъдат реализирани между обекти на DataFrames.

В тази статия ще разгледаме употребите на функцията за сливане, функцията concat и различни типове операции на обединяване в Pandas python. Всички примери ще бъдат изпълнени чрез редактора на pycharm. Нека започнем с подробностите!

Използване на функция за сливане

Основният често използван синтаксис на функцията merge () е даден по-долу:

pd.обединяване (df_obj1, df_obj2, how = 'вътрешен', on = None, left_on = None, right_on = None)

Нека да обясним подробностите за параметрите:

Първите две df_obj1 и df_obj2 аргументите са имената на обектите или таблиците на DataFrame.

какПараметърът се използва за различни видове операции на съединяване като „ляво, дясно, външно и вътрешно“. Функцията за сливане по подразбиране използва операция за вътрешно съединяване.

Аргументът "На" съдържа името на колоната, върху която се извършва операцията за присъединяване. Тази колона трябва да присъства и в двата обекта DataFrame.

В аргументите „left_on“ и „right_on“ „left_on“ е името на името на колоната като ключ в левия DataFrame. „Right_on“ е името на колоната, използвана като ключ от дясната рамка на данни.

За да разработим концепцията за присъединяване към DataFrames, взехме два обекта на DataFrame - продукт и клиент. Следните подробности присъстват в продукта DataFrame:

продукт = pd.DataFrame (
„Product_ID“: [101,102,103,104,105,106,107],
„Product_Name“: [„слушалки“, „чанта“, „обувки“, „смартфон“, „четка за зъби“, „ръчен часовник“, „лаптоп“],
„Категория“: [„Електроника“, „Мода“, „Мода“, „Електроника“, „Хранителни стоки“, „Мода“, „Електроника“],
„Цена“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)

Клиентът DataFrame съдържа следните подробности:

клиент = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
„Клиентско име“: [„Сара“, „Сана“, „Али“, „Рейес“, „Махвиш“, „Умар“, „Мирха“, „Асиф“, „Мария“],
„Възраст“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„слушалки“, „NA“, „ръчен часовник“, „NA“, „Обувки“, „Смартфон“, „NA“, „NA“, „Лаптоп“],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
„Лахор“]
)

Присъединете се към DataFrames на ключ

Лесно можем да намерим продукти, продавани онлайн, и клиентите, които са ги закупили. И така, въз основа на ключ “Product_ID”, ние извършихме операция за вътрешно обединяване на двата DataFrames, както следва:

# импортиране на библиотека Pandas
импортирайте панди като pd
продукт = pd.DataFrame (
„Product_ID“: [101,102,103,104,105,106,107],
„Product_Name“: [„слушалки“, „чанта“, „обувки“, „смартфон“, „четка за зъби“, „ръчен часовник“, „лаптоп“],
„Категория“: [„Електроника“, „Мода“, „Мода“, „Електроника“, „Хранителни стоки“, „Мода“, „Електроника“],
„Цена“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
клиент = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
„Клиентско име“: [„Сара“, „Сана“, „Али“, „Рейес“, „Махвиш“, „Умар“, „Мирха“, „Асиф“, „Мария“],
„Възраст“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„слушалки“, „NA“, „ръчен часовник“, „NA“, „Обувки“, „Смартфон“, „NA“, „NA“, „Лаптоп“],
„Град“: [„Лахор“, „Исламабад“, „Файсалабад“, „Карачи“, „Карачи“, „Исламабад“, „Равалпинди“, „Исламабад“,
„Лахор“]
)
печат (pd.обединяване (продукт, клиент, на = 'Product_ID'))

Следният изход се показва на прозореца след стартиране на горния код:

Ако колоните са различни в двата DataFrames, тогава изрично напишете името на всяка колона от аргументите left_on и right_on, както следва:

импортирайте панди като pd
продукт = pd.DataFrame (
„Product_ID“: [101,102,103,104,105,106,107],
„Product_Name“: [„слушалки“, „чанта“, „обувки“, „смартфон“, „четка за зъби“, „ръчен часовник“, „лаптоп“],
„Категория“: [„Електроника“, „Мода“, „Мода“, „Електроника“, „Хранителни стоки“, „Мода“, „Електроника“],
„Цена“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
клиент = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
„Клиентско име“: [„Сара“, „Сана“, „Али“, „Рейес“, „Махвиш“, „Умар“, „Мирха“, „Асиф“, „Мария“],
„Възраст“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„слушалки“, „NA“, „ръчен часовник“, „NA“, „Обувки“, „Смартфон“, „NA“, „NA“, „Лаптоп“],
„Град“: [„Лахор“, „Исламабад“, „Файсалабад“, „Карачи“, „Карачи“, „Исламабад“, „Равалпинди“, „Исламабад“,
„Лахор“]
)
печат (pd.обединяване (продукт, клиент, left_on = 'Product_Name', right_on = 'Product_Purchased'))

Следният изход ще се покаже на екрана:

Присъединете се към DataFrames, използвайки How Argument

В следващите примери ще обясним четири типа операции за присъединяване на Pandas DataFrames:

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

Можем да изпълним вътрешно съединение на множество клавиши. За да покажете повече подробности за продажбите на продукта, вземете Product_ID, Seller_City от продукта DataFrame и Product_ID и „Customer_City“ от клиента DataFrame, за да установите, че или продавачът, или клиентът принадлежи към същия град. Внедрете следните редове код:

# импортиране на библиотека Pandas
импортирайте панди като pd
продукт = pd.DataFrame (
„Product_ID“: [101,102,103,104,105,106,107],
„Product_Name“: [„слушалки“, „чанта“, „обувки“, „смартфон“, „четка за зъби“, „ръчен часовник“, „лаптоп“],
„Категория“: [„Електроника“, „Мода“, „Мода“, „Електроника“, „Хранителни стоки“, „Мода“, „Електроника“],
„Цена“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
клиент = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
„Клиентско име“: [„Сара“, „Сана“, „Али“, „Рейес“, „Махвиш“, „Умар“, „Мирха“, „Асиф“, „Мария“],
„Възраст“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„слушалки“, „NA“, „ръчен часовник“, „NA“, „Обувки“, „Смартфон“, „NA“, „NA“, „Лаптоп“],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
„Лахор“]
)
печат (pd.обединяване (продукт, клиент, как = 'вътрешен', left_on = ['Product_ID', 'Seller_City'], right_on = ['Product_ID', 'Customer_City']))

Следният резултат се показва на прозореца след стартиране на горния код:

Пълно / външно присъединяване в Pandas

Външните обединения връщат както дясната, така и лявата стойност на DataFrames, които имат съвпадения. Така че, за да приложите външното присъединяване, задайте аргумента „как“ като външен. Нека модифицираме горния пример, като използваме концепцията за външно присъединяване. В кода по-долу той ще върне всички стойности както на левия, така и на десния DataFrames.

# импортиране на библиотека Pandas
импортирайте панди като pd
продукт = pd.DataFrame (
„Product_ID“: [101,102,103,104,105,106,107],
„Product_Name“: [„слушалки“, „чанта“, „обувки“, „смартфон“, „четка за зъби“, „ръчен часовник“, „лаптоп“],
„Категория“: [„Електроника“, „Мода“, „Мода“, „Електроника“, „Хранителни стоки“, „Мода“, „Електроника“],
„Цена“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
клиент = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
„Клиентско име“: [„Сара“, „Сана“, „Али“, „Рейес“, „Махвиш“, „Умар“, „Мирха“, „Асиф“, „Мария“],
„Възраст“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„слушалки“, „NA“, „ръчен часовник“, „NA“, „Обувки“, „Смартфон“, „NA“, „NA“, „Лаптоп“],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
„Лахор“]
)
печат (pd.обединяване (продукт, клиент, на = 'Product_ID', как = 'външен'))

Задайте аргумента на индикатора като „True“ s. Ще забележите, че новата колона “_merge” е добавена в края.

# импортиране на библиотека Pandas
импортирайте панди като pd
продукт = pd.DataFrame (
„Product_ID“: [101,102,103,104,105,106,107],
„Product_Name“: [„слушалки“, „чанта“, „обувки“, „смартфон“, „четка за зъби“, „ръчен часовник“, „лаптоп“],
„Категория“: [„Електроника“, „Мода“, „Мода“, „Електроника“, „Хранителни стоки“, „Мода“, „Електроника“],
„Цена“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
клиент = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
„Клиентско име“: [„Сара“, „Сана“, „Али“, „Рейес“, „Махвиш“, „Умар“, „Мирха“, „Асиф“, „Мария“],
„Възраст“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„слушалки“, „NA“, „ръчен часовник“, „NA“, „Обувки“, „Смартфон“, „NA“, „NA“, „Лаптоп“],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
„Лахор“]
)
печат (pd.обединяване (продукт, клиент, на = 'Product_ID', как = 'външен', индикатор = Вярно))

Както можете да видите на екранната снимка по-долу, стойностите на колоната за сливане обясняват кой ред принадлежи към кой DataFrame.

Ляв член в Pandas

Лявото присъединяване показва само редове на левия DataFrame.  Подобно е на външното съединение. Така че, променете стойността на аргумента „как“ с „ляво“. Опитайте следния код, за да реализирате идеята за ляво присъединяване:

# импортиране на библиотека Pandas
импортирайте панди като pd
продукт = pd.DataFrame (
„Product_ID“: [101,102,103,104,105,106,107],
„Product_Name“: [„слушалки“, „чанта“, „обувки“, „смартфон“, „четка за зъби“, „ръчен часовник“, „лаптоп“],
„Категория“: [„Електроника“, „Мода“, „Мода“, „Електроника“, „Хранителни стоки“, „Мода“, „Електроника“],
„Цена“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
клиент = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
„Клиентско име“: [„Сара“, „Сана“, „Али“, „Рейес“, „Махвиш“, „Умар“, „Мирха“, „Асиф“, „Мария“],
„Възраст“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„слушалки“, „NA“, „ръчен часовник“, „NA“, „Обувки“, „Смартфон“, „NA“, „NA“, „Лаптоп“],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
„Лахор“]
)
печат (pd.обединяване (продукт, клиент, на = 'Product_ID', how = 'left'))

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

Правото съединение запазва всички десни редове DataFrame вдясно, заедно с редовете, които също са често срещани в левия DataFrame. В този случай аргументът „как“ е зададен като „дясна“ стойност. Изпълнете следния код, за да приложите правилната концепция за присъединяване:

# импортиране на библиотека Pandas
импортирайте панди като pd
продукт = pd.DataFrame (
„Product_ID“: [101,102,103,104,105,106,107],
„Product_Name“: [„слушалки“, „чанта“, „обувки“, „смартфон“, „четка за зъби“, „ръчен часовник“, „лаптоп“],
„Категория“: [„Електроника“, „Мода“, „Мода“, „Електроника“, „Хранителни стоки“, „Мода“, „Електроника“],
„Цена“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
клиент = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
„Клиентско име“: [„Сара“, „Сана“, „Али“, „Рейес“, „Махвиш“, „Умар“, „Мирха“, „Асиф“, „Мария“],
„Възраст“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„слушалки“, „NA“, „ръчен часовник“, „NA“, „Обувки“, „Смартфон“, „NA“, „NA“, „Лаптоп“],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
„Лахор“]
)
печат (pd.обединяване (продукт, клиент, on = 'Product_ID', how = 'right'))

На следващата екранна снимка можете да видите резултата след стартиране на горния код:

Обединяване на DataFrames с помощта на функцията Concat ()

Два DataFrames могат да бъдат обединени с помощта на функцията concat. Основният синтаксис на функцията за конкатенация е даден по-долу:

pd.concat ([df_obj1, df_obj_2]))

Два обекта DataFrames ще преминат като аргументи.

Нека се присъединим както към продукта DataFrames, така и към клиента чрез функцията concat. Изпълнете следните редове код, за да се присъедините към два DataFrames:

# импортиране на библиотека Pandas
импортирайте панди като pd
продукт = pd.DataFrame (
„Product_ID“: [101,102,103,104,105,106,107],
„Product_Name“: [„слушалки“, „чанта“, „обувки“, „смартфон“, „четка за зъби“, „ръчен часовник“, „лаптоп“],
„Категория“: [„Електроника“, „Мода“, „Мода“, „Електроника“, „Хранителни стоки“, „Мода“, „Електроника“],
„Цена“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
клиент = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
„Клиентско име“: [„Сара“, „Сана“, „Али“, „Рейес“, „Махвиш“, „Умар“, „Мирха“, „Асиф“, „Мария“],
„Възраст“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„слушалки“, „NA“, „ръчен часовник“, „NA“, „Обувки“, „Смартфон“, „NA“, „NA“, „Лаптоп“],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
„Лахор“]
)
печат (pd.concat ([продукт, клиент]))

Заключение:

В тази статия обсъдихме изпълнението на функцията merge (), функциите concat () и присъединяването в Pandas python. Използвайки горните методи, можете лесно да се присъедините към два DataFrames и научени. как да приложим операциите за присъединяване „вътрешна, външна, лява и дясна“ в Pandas. Надяваме се, че този урок ще ви насочи при изпълнението на операциите за обединяване на различни видове DataFrames. Моля, уведомете ни за вашите трудности в случай на грешка.

Бутонът на левия бутон на мишката не работи в Windows 10
Ако използвате специална мишка с вашия лаптоп или настолен компютър, но бутонът на левия бутон на мишката не работи на Windows 10/8/7 по някаква причи...
Курсорът скача или се движи произволно, докато пишете в Windows 10
Ако установите, че курсорът на вашата мишка скача или се движи самостоятелно, автоматично, произволно, докато пишете в лаптоп или компютър на Windows,...
Как да обърнете посоката на превъртане на мишката и тъчпада в Windows 10
Мишка и Тъчпадs не само правят изчисленията лесни, но и по-ефективни и отнемат по-малко време. Не можем да си представим живот без тези устройства, но...