पायथन पंडों - विलय / शामिल होना

पंडों में पूर्ण-विशेषताओं, उच्च प्रदर्शन-इन-मेमोरी शामिल हैं जो मुहावरेदार रूप से SQL जैसे रिलेशनल डेटाबेस के समान ही काम करते हैं।

पंडों ने एक ही समारोह प्रदान किया, merge, सभी मानक डेटाबेस के लिए प्रवेश बिंदु के रूप में DataFrame वस्तुओं के बीच संचालन में शामिल हों -

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,
left_index=False, right_index=False, sort=True)

यहाँ, हमने निम्नलिखित मापदंडों का उपयोग किया है -

  • left - एक DataFrame ऑब्जेक्ट।

  • right - एक अन्य डेटाफ्रेम ऑब्जेक्ट।

  • on- कॉलम (नाम) पर शामिल होने के लिए। बाएँ और दाएँ दोनों DataFrame ऑब्जेक्ट्स में पाया जाना चाहिए।

  • left_on- कुंजी के रूप में उपयोग करने के लिए बाएं DataFrame से कॉलम। या तो स्तंभ नाम हो सकता है या डेटाफ़्रेम की लंबाई के बराबर लंबाई के साथ सरणियाँ हो सकती हैं।

  • right_on- कुंजी के रूप में उपयोग करने के लिए सही DataFrame से कॉलम। या तो स्तंभ नाम हो सकता है या डेटाफ़्रेम की लंबाई के बराबर लंबाई के साथ सरणियाँ हो सकती हैं।

  • left_index - अगर True,इसके जुड़ने की कुंजी के रूप में बाएं DataFrame से सूचकांक (पंक्ति लेबल) का उपयोग करें। मल्टीफ़ंडेक्स (पदानुक्रमित) के साथ डेटाफ़्रेम के मामले में, स्तरों की संख्या को सही डेटाफ़्रेम से जुड़ने की कुंजी की संख्या से मेल खाना चाहिए।

  • right_index - समान उपयोग left_index सही DataFrame के लिए।

  • how- 'बाएँ', 'दाएँ', 'बाहरी', 'आंतरिक' में से एक। भीतर तक दोष। प्रत्येक विधि नीचे वर्णित की गई है।

  • sort- lexicographic क्रम में शामिल कुंजियों द्वारा परिणाम DataFrame को सॉर्ट करें। सही मायने में चूक, गलत पर सेट करने से कई मामलों में प्रदर्शन में काफी सुधार होगा।

आइए अब हम दो अलग-अलग DataFrames बनाते हैं और उस पर विलय कार्य करते हैं।

# import the pandas library
import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame(
   {'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print left
print right

आईटी इस output इस प्रकार है -

Name  id   subject_id
0   Alex   1         sub1
1    Amy   2         sub2
2  Allen   3         sub4
3  Alice   4         sub6
4  Ayoung  5         sub5

    Name  id   subject_id
0  Billy   1         sub2
1  Brian   2         sub4
2  Bran    3         sub3
3  Bryce   4         sub6
4  Betty   5         sub5

एक कुंजी पर दो DataFrames मर्ज करें

import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame({
	'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print pd.merge(left,right,on='id')

आईटी इस output इस प्रकार है -

Name_x   id  subject_id_x   Name_y   subject_id_y
0  Alex      1          sub1    Billy           sub2
1  Amy       2          sub2    Brian           sub4
2  Allen     3          sub4     Bran           sub3
3  Alice     4          sub6    Bryce           sub6
4  Ayoung    5          sub5    Betty           sub5

एकाधिक कुंजियों पर दो डेटाफ़्रेम मर्ज करें

import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame({
	'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print pd.merge(left,right,on=['id','subject_id'])

आईटी इस output इस प्रकार है -

Name_x   id   subject_id   Name_y
0    Alice    4         sub6    Bryce
1   Ayoung    5         sub5    Betty

'कैसे' तर्क का उपयोग कर विलय करें

howमर्ज करने का तर्क निर्दिष्ट करता है कि परिणाम तालिका में किन कुंजियों को शामिल किया जाना है। यदि एक कुंजी संयोजन बाएं या दाएं तालिकाओं में प्रकट नहीं होता है, तो शामिल तालिका में मान एनए होंगे।

यहाँ का एक सारांश है how विकल्प और उनके SQL समकक्ष नाम -

मर्ज विधि एसक्यूएल समतुल्य विवरण
बाएं बाईं ओर का बाहरी जोड़ बाएँ ऑब्जेक्ट से कुंजियों का उपयोग करें
सही सही जॉय शामिल हैं सही वस्तु से कुंजियों का उपयोग करें
आउटर पूरा कंप्यूटर शामिल है चाबियों के संघ का उपयोग करें
भीतरी आंतरिक रूप से जुड़ा चौराहों का उपयोग करें

बाँया जोड़

import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print pd.merge(left, right, on='subject_id', how='left')

आईटी इस output इस प्रकार है -

Name_x   id_x   subject_id   Name_y   id_y
0     Alex      1         sub1      NaN    NaN
1      Amy      2         sub2    Billy    1.0
2    Allen      3         sub4    Brian    2.0
3    Alice      4         sub6    Bryce    4.0
4   Ayoung      5         sub5    Betty    5.0

राइट जॉइन करें

import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print pd.merge(left, right, on='subject_id', how='right')

आईटी इस output इस प्रकार है -

Name_x  id_x   subject_id   Name_y   id_y
0      Amy   2.0         sub2    Billy      1
1    Allen   3.0         sub4    Brian      2
2    Alice   4.0         sub6    Bryce      4
3   Ayoung   5.0         sub5    Betty      5
4      NaN   NaN         sub3     Bran      3

बाहरी सम्मिलित हों

import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print pd.merge(left, right, how='outer', on='subject_id')

आईटी इस output इस प्रकार है -

Name_x  id_x   subject_id   Name_y   id_y
0     Alex   1.0         sub1      NaN    NaN
1      Amy   2.0         sub2    Billy    1.0
2    Allen   3.0         sub4    Brian    2.0
3    Alice   4.0         sub6    Bryce    4.0
4   Ayoung   5.0         sub5    Betty    5.0
5      NaN   NaN         sub3     Bran    3.0

आंतरिक रूप से जुड़ा

शामिल होने पर सूचकांक पर प्रदर्शन किया जाएगा। ऑपरेशन में शामिल हों उस वस्तु का सम्मान करते हैं जिस पर इसे कहा जाता है। इसलिए,a.join(b) के बराबर नहीं है b.join(a)

import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print pd.merge(left, right, on='subject_id', how='inner')

आईटी इस output इस प्रकार है -

Name_x   id_x   subject_id   Name_y   id_y
0      Amy      2         sub2    Billy      1
1    Allen      3         sub4    Brian      2
2    Alice      4         sub6    Bryce      4
3   Ayoung      5         sub5    Betty      5