पायथन पंडों - विलय / शामिल होना
पंडों में पूर्ण-विशेषताओं, उच्च प्रदर्शन-इन-मेमोरी शामिल हैं जो मुहावरेदार रूप से 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