У овом чланку ћемо истражити употребу функције спајања, функције цонцат и различитих типова операција спајања у Пандас питхон. Сви примери ће се извршавати кроз пицхарм едитор. Почнимо са детаљима!
Употреба функције спајања
Основна уобичајена синтакса функције мерге () дата је у наставку:
пд.спајање (дф_обј1, дф_обј2, како = 'унутрашњи', укључен = Ниједан, леви_он = Ниједан, десни_он = Нема)Објаснимо детаље параметара:
Прва два дф_обј1 и дф_обј2 Аргументи су имена ДатаФраме објеката или табела.
„какоПараметар се користи за различите типове операција спајања као што су „лево, десно, спољно и унутрашње“. Функција спајања подразумевано користи операцију „унутрашњег“ спајања.
Аргумент "на" садржи име колоне на којој се изводи операција спајања. Ова колона мора бити присутна у оба ДатаФраме објекта.
У аргументима „лефт_он“ и „ригхт_он“, „лефт_он“ је име назива колоне као кључ у левом ДатаФраме-у. „Ригхт_он“ је назив колоне која се користи као кључ десног ДатаФраме-а.
Да бисмо разрадили концепт придруживања ДатаФрамес-у, узели смо два ДатаФраме објекта - производ и купац. Следећи детаљи су присутни у производу ДатаФраме:
производ = пд.Оквир података('Продуцт_ИД': [101,102,103,104,105,106,107],
„Продуцт_Наме“: [„слушалице“, „Торба“, „Ципеле“, „Смартпхоне“, „четкица за зубе“, „ручни сат“, „Лаптоп“],
„Категорија“: [„Електроника“, „Мода“, „Мода“, „Електроника“, „Прехрана“, „Мода“, „Електроника“],
„Цена“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Селлер_Цити': ['Исламабад', 'Лахоре', 'Карацхи', 'Равалпинди', 'Исламабад', 'Карацхи', 'Фаисалабад']
)
Кориснички ДатаФраме садржи следеће детаље:
купац = пд.Оквир података('ИД': [1,2,3,4,5,6,7,8,9],
'Цустомер_Наме': ['Сара', 'Сана', 'Али', 'Раеес', 'Махвисх', 'Умар', 'Мирха', 'Асиф', 'Мариа'],
'Старост': [20,21,15,10,31,52,15,18,16],
'Продуцт_ИД': [101,0,106,0,103,104,0,0,107],
„Купљени производ“: [„слушалице“, „НА“, „ручни сат“, „НА“, „Ципеле“, „Паметни телефон“, „НА“, „НА“, „Лаптоп“],
'Цустомер_Цити': ['Лахоре', 'Исламабад', 'Фаисалабад', 'Карацхи', 'Карацхи', 'Исламабад', 'Равалпинди', 'Исламабад',
'Лахоре']
)
Придружите се оквирима података на кључу
Лако можемо пронаћи производе који се продају на мрежи и купце који су их купили. Дакле, на основу кључа „Продуцт_ИД“, извршили смо операцију унутрашњег спајања на оба ДатаФрамес-а на следећи начин:
# увези библиотеку Пандасувези панде као пд
производ = пд.Оквир података(
'Продуцт_ИД': [101,102,103,104,105,106,107],
„Продуцт_Наме“: [„слушалице“, „Торба“, „Ципеле“, „Смартпхоне“, „четкица за зубе“, „ручни сат“, „Лаптоп“],
„Категорија“: [„Електроника“, „Мода“, „Мода“, „Електроника“, „Намирнице“, „Мода“, „Електроника“],
„Цена“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Селлер_Цити': ['Исламабад', 'Лахоре', 'Карацхи', 'Равалпинди', 'Исламабад', 'Карацхи', 'Фаисалабад']
)
купац = пд.Оквир података(
'ИД': [1,2,3,4,5,6,7,8,9],
'Цустомер_Наме': ['Сара', 'Сана', 'Али', 'Раеес', 'Махвисх', 'Умар', 'Мирха', 'Асиф', 'Мариа'],
'Старост': [20,21,15,10,31,52,15,18,16],
'Продуцт_ИД': [101,0,106,0,103,104,0,0,107],
„Купљени производ“: [„слушалице“, „НА“, „ручни сат“, „НА“, „Ципеле“, „Паметни телефон“, „НА“, „НА“, „Лаптоп“],
'Град': ['Лахоре', 'Исламабад', 'Фаисалабад', 'Карацхи', 'Карацхи', 'Исламабад', 'Равалпинди', 'Исламабад',
'Лахоре']
)
принт (пд.обједињавање (производ, купац, на = 'Продуцт_ИД'))
Следећи излаз се приказује на прозору након покретања горњег кода:
Ако су ступци различити у оба оквира података, онда изричито напишите име сваке колоне аргументима лефт_он и ригхт_он на следећи начин:
увези панде као пдпроизвод = пд.Оквир података(
'Продуцт_ИД': [101,102,103,104,105,106,107],
„Продуцт_Наме“: [„слушалице“, „Торба“, „Ципеле“, „Смартпхоне“, „четкица за зубе“, „ручни сат“, „Лаптоп“],
„Категорија“: [„Електроника“, „Мода“, „Мода“, „Електроника“, „Прехрана“, „Мода“, „Електроника“],
„Цена“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Селлер_Цити': ['Исламабад', 'Лахоре', 'Карацхи', 'Равалпинди', 'Исламабад', 'Карацхи', 'Фаисалабад']
)
купац = пд.Оквир података(
'ИД': [1,2,3,4,5,6,7,8,9],
'Цустомер_Наме': ['Сара', 'Сана', 'Али', 'Раеес', 'Махвисх', 'Умар', 'Мирха', 'Асиф', 'Мариа'],
'Старост': [20,21,15,10,31,52,15,18,16],
'Продуцт_ИД': [101,0,106,0,103,104,0,0,107],
„Купљени производ“: [„слушалице“, „НА“, „ручни сат“, „НА“, „Ципеле“, „Паметни телефон“, „НА“, „НА“, „Лаптоп“],
'Град': ['Лахоре', 'Исламабад', 'Фаисалабад', 'Карацхи', 'Карацхи', 'Исламабад', 'Равалпинди', 'Исламабад',
'Лахоре']
)
принт (пд.обједињавање (производ, купац, лефт_он = 'Продуцт_Наме', ригхт_он = 'Продуцт_Пурцхасед'))
На екрану ће се приказати следећи излаз:
Придружите се ДатаФрамес-у користећи Хов Аргумент
У следећим примерима ћемо објаснити четири врсте операција придруживања на Пандас ДатаФрамес:
- Иннер Јоин
- Спољно придруживање
- Лефт Јоин
- Ригхт Јоин
Унутрашње придруживање у Пандама
Можемо извршити унутрашње спајање на више тастера. Да бисте приказали више детаља о продаји производа, узмите Продуцт_ИД, Селлер_Цити из производа ДатаФраме и Продуцт_ИД и „Цустомер_Цити“ из корисничког ДатаФрамеа да бисте утврдили да ли продавац или купац припадају истом граду. Примените следеће редове кода:
# увези библиотеку Пандасувези панде као пд
производ = пд.Оквир података(
'Продуцт_ИД': [101,102,103,104,105,106,107],
„Продуцт_Наме“: [„слушалице“, „Торба“, „Ципеле“, „Смартпхоне“, „четкица за зубе“, „ручни сат“, „Лаптоп“],
„Категорија“: [„Електроника“, „Мода“, „Мода“, „Електроника“, „Намирнице“, „Мода“, „Електроника“],
„Цена“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Селлер_Цити': ['Исламабад', 'Лахоре', 'Карацхи', 'Равалпинди', 'Исламабад', 'Карацхи', 'Фаисалабад']
)
купац = пд.Оквир података(
'ИД': [1,2,3,4,5,6,7,8,9],
'Цустомер_Наме': ['Сара', 'Сана', 'Али', 'Раеес', 'Махвисх', 'Умар', 'Мирха', 'Асиф', 'Мариа'],
'Старост': [20,21,15,10,31,52,15,18,16],
'Продуцт_ИД': [101,0,106,0,103,104,0,0,107],
„Купљени производ“: [„слушалице“, „НА“, „ручни сат“, „НА“, „Ципеле“, „Паметни телефон“, „НА“, „НА“, „Лаптоп“],
'Цустомер_Цити': ['Лахоре', 'Исламабад', 'Фаисалабад', 'Карацхи', 'Карацхи', 'Исламабад', 'Равалпинди', 'Исламабад',
'Лахоре']
)
принт (пд.спајање (производ, купац, како = 'унутрашњи', лефт_он = ['Продуцт_ИД', 'Селлер_Цити'], ригхт_он = ['Продуцт_ИД', 'Цустомер_Цити']))
Следећи резултат се приказује на прозору након покретања горњег кода:
Пун / спољни спој у Пандама
Спољна спајања враћају и десне и леве вредности ДатаФрамес-а, које се подударају. Дакле, да бисте применили спољно удруживање, поставите аргумент „како“ као спољни. Изменимо горњи пример коришћењем концепта спољног спајања. У доњем коду ће вратити све вредности и левог и десног оквира података.
# увези библиотеку Пандасувези панде као пд
производ = пд.Оквир података(
'Продуцт_ИД': [101,102,103,104,105,106,107],
„Продуцт_Наме“: [„слушалице“, „Торба“, „Ципеле“, „Смартпхоне“, „четкица за зубе“, „ручни сат“, „Лаптоп“],
„Категорија“: [„Електроника“, „Мода“, „Мода“, „Електроника“, „Прехрана“, „Мода“, „Електроника“],
„Цена“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Селлер_Цити': ['Исламабад', 'Лахоре', 'Карацхи', 'Равалпинди', 'Исламабад', 'Карацхи', 'Фаисалабад']
)
купац = пд.Оквир података(
'ИД': [1,2,3,4,5,6,7,8,9],
'Цустомер_Наме': ['Сара', 'Сана', 'Али', 'Раеес', 'Махвисх', 'Умар', 'Мирха', 'Асиф', 'Мариа'],
'Старост': [20,21,15,10,31,52,15,18,16],
'Продуцт_ИД': [101,0,106,0,103,104,0,0,107],
„Купљени производ“: [„слушалице“, „НА“, „ручни сат“, „НА“, „Ципеле“, „Паметни телефон“, „НА“, „НА“, „Лаптоп“],
'Цустомер_Цити': ['Лахоре', 'Исламабад', 'Фаисалабад', 'Карацхи', 'Карацхи', 'Исламабад', 'Равалпинди', 'Исламабад',
'Лахоре']
)
принт (пд.спајање (производ, купац, на = 'Продуцт_ИД', како = 'спољни'))
Поставите аргумент индикатора на „Труе“ с. Приметићете да је на крају додата нова колона „_мерге“.
# увези библиотеку Пандасувези панде као пд
производ = пд.Оквир података(
'Продуцт_ИД': [101,102,103,104,105,106,107],
„Продуцт_Наме“: [„слушалице“, „Торба“, „Ципеле“, „Смартпхоне“, „четкица за зубе“, „ручни сат“, „Лаптоп“],
„Категорија“: [„Електроника“, „Мода“, „Мода“, „Електроника“, „Прехрана“, „Мода“, „Електроника“],
„Цена“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Селлер_Цити': ['Исламабад', 'Лахоре', 'Карацхи', 'Равалпинди', 'Исламабад', 'Карацхи', 'Фаисалабад']
)
купац = пд.Оквир података(
'ИД': [1,2,3,4,5,6,7,8,9],
'Цустомер_Наме': ['Сара', 'Сана', 'Али', 'Раеес', 'Махвисх', 'Умар', 'Мирха', 'Асиф', 'Мариа'],
'Старост': [20,21,15,10,31,52,15,18,16],
'Продуцт_ИД': [101,0,106,0,103,104,0,0,107],
„Купљени производ“: [„слушалице“, „НА“, „ручни сат“, „НА“, „Ципеле“, „Паметни телефон“, „НА“, „НА“, „Лаптоп“],
'Цустомер_Цити': ['Лахоре', 'Исламабад', 'Фаисалабад', 'Карацхи', 'Карацхи', 'Исламабад', 'Равалпинди', 'Исламабад',
'Лахоре']
)
принт (пд.спајање (производ, купац, на = 'Продуцт_ИД', како = 'спољни', индикатор = Тачно))
Као што можете видети на доњем снимку екрана, вредности колона за обједињавање објашњавају који ред припада којем ДатаФраме-у.
Лево се придружио Пандама
Лево спајање приказује само редове левог ДатаФраме-а. Слично је спољашњем споју. Дакле, промените вредност аргумента „како“ са „лево“. Испробајте следећи код да бисте применили идеју Лефт јоин:
# увези библиотеку Пандасувези панде као пд
производ = пд.Оквир података(
'Продуцт_ИД': [101,102,103,104,105,106,107],
„Продуцт_Наме“: [„слушалице“, „Торба“, „Ципеле“, „Смартпхоне“, „четкица за зубе“, „ручни сат“, „Лаптоп“],
„Категорија“: [„Електроника“, „Мода“, „Мода“, „Електроника“, „Намирнице“, „Мода“, „Електроника“],
„Цена“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Селлер_Цити': ['Исламабад', 'Лахоре', 'Карацхи', 'Равалпинди', 'Исламабад', 'Карацхи', 'Фаисалабад']
)
купац = пд.Оквир података(
'ИД': [1,2,3,4,5,6,7,8,9],
'Цустомер_Наме': ['Сара', 'Сана', 'Али', 'Раеес', 'Махвисх', 'Умар', 'Мирха', 'Асиф', 'Мариа'],
'Старост': [20,21,15,10,31,52,15,18,16],
'Продуцт_ИД': [101,0,106,0,103,104,0,0,107],
„Купљени производ“: [„слушалице“, „НА“, „ручни сат“, „НА“, „Ципеле“, „Паметни телефон“, „НА“, „НА“, „Лаптоп“],
'Цустомер_Цити': ['Лахоре', 'Исламабад', 'Фаисалабад', 'Карацхи', 'Карацхи', 'Исламабад', 'Равалпинди', 'Исламабад',
'Лахоре']
)
принт (пд.спајање (производ, купац, на = 'Продуцт_ИД', како = 'лево'))
Право придруживање у Пандама
Десно спајање држи све десне редове ДатаФраме удесно, заједно са редовима који су такође чести у левом ДатаФраме. У овом случају, аргумент „како“ је постављен као „права“ вредност. Покрените следећи код да бисте применили прави концепт спајања:
# увези библиотеку Пандасувези панде као пд
производ = пд.Оквир података(
'Продуцт_ИД': [101,102,103,104,105,106,107],
„Продуцт_Наме“: [„слушалице“, „Торба“, „Ципеле“, „Смартпхоне“, „четкица за зубе“, „ручни сат“, „Лаптоп“],
„Категорија“: [„Електроника“, „Мода“, „Мода“, „Електроника“, „Намирнице“, „Мода“, „Електроника“],
„Цена“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Селлер_Цити': ['Исламабад', 'Лахоре', 'Карацхи', 'Равалпинди', 'Исламабад', 'Карацхи', 'Фаисалабад']
)
купац = пд.Оквир података(
'ИД': [1,2,3,4,5,6,7,8,9],
'Цустомер_Наме': ['Сара', 'Сана', 'Али', 'Раеес', 'Махвисх', 'Умар', 'Мирха', 'Асиф', 'Мариа'],
'Старост': [20,21,15,10,31,52,15,18,16],
'Продуцт_ИД': [101,0,106,0,103,104,0,0,107],
„Купљени производ“: [„слушалице“, „НА“, „ручни сат“, „НА“, „Ципеле“, „Паметни телефон“, „НА“, „НА“, „Лаптоп“],
'Цустомер_Цити': ['Лахоре', 'Исламабад', 'Фаисалабад', 'Карацхи', 'Карацхи', 'Исламабад', 'Равалпинди', 'Исламабад',
'Лахоре']
)
принт (пд.спајање (производ, купац, на = 'Продуцт_ИД', како = 'у праву'))
На следећем снимку екрана можете видети резултат након покретања горњег кода:
Спајање ДатаФрамес-а помоћу функције Цонцат ()
Два оквира података могу се спојити помоћу функције цонцат. Основна синтакса функције спајања дата је у наставку:
пд.цонцат ([дф_обј1, дф_обј_2]))Два објекта ДатаФрамес проследиће се као аргументи.
Придружимо се и ДатаФрамес производу и купцу путем функције цонцат. Покрените следеће редове кода да бисте спојили два оквира података:
# увези библиотеку Пандасувези панде као пд
производ = пд.Оквир података(
'Продуцт_ИД': [101,102,103,104,105,106,107],
„Продуцт_Наме“: [„слушалице“, „Торба“, „Ципеле“, „Смартпхоне“, „четкица за зубе“, „ручни сат“, „Лаптоп“],
„Категорија“: [„Електроника“, „Мода“, „Мода“, „Електроника“, „Прехрана“, „Мода“, „Електроника“],
„Цена“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Селлер_Цити': ['Исламабад', 'Лахоре', 'Карацхи', 'Равалпинди', 'Исламабад', 'Карацхи', 'Фаисалабад']
)
купац = пд.Оквир података(
'ИД': [1,2,3,4,5,6,7,8,9],
'Цустомер_Наме': ['Сара', 'Сана', 'Али', 'Раеес', 'Махвисх', 'Умар', 'Мирха', 'Асиф', 'Мариа'],
'Старост': [20,21,15,10,31,52,15,18,16],
'Продуцт_ИД': [101,0,106,0,103,104,0,0,107],
„Купљени производ“: [„слушалице“, „НА“, „ручни сат“, „НА“, „Ципеле“, „Паметни телефон“, „НА“, „НА“, „Лаптоп“],
'Цустомер_Цити': ['Лахоре', 'Исламабад', 'Фаисалабад', 'Карацхи', 'Карацхи', 'Исламабад', 'Равалпинди', 'Исламабад',
'Лахоре']
)
принт (пд.цонцат ([производ, купац]))
Закључак:
У овом чланку смо разговарали о имплементацији функције мерге (), цонцат () и придруживања у Пандас питхон. Користећи горенаведене методе, лако можете придружити два оквира података и научити. како применити операције придруживања „унутрашње, спољашње, лево и десно“ у Пандама. Надамо се да ће вас овај водич водити у примени операција спајања на различитим врстама ДатаФрамес-а. Обавестите нас о својим потешкоћама у случају било какве грешке.