pandas 0.23 - DataFrame.merge()

pandas.DataFrame.merge




pandas

pandas.DataFrame.merge

DataFrame.merge(right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None) [source]

स्तंभ या अनुक्रमणिका द्वारा डेटाबेस-शैली में शामिल होने के लिए डेटाफ़्रेम वस्तुओं को मर्ज करें।

यदि स्तंभों पर कॉलम में शामिल होते हैं, तो DataFrame इंडेक्स को अनदेखा किया जाएगा । अन्यथा यदि किसी स्तंभ या स्तंभ पर अनुक्रमणिका या अनुक्रमित पर अनुक्रमणिका में शामिल होने पर, सूचकांक को पारित किया जाएगा।

पैरामीटर:
right : DataFrame

कैसे : {'बाएँ', 'दाएँ', 'बाहरी', 'भीतरी'}, डिफ़ॉल्ट 'आंतरिक'

  • बायां: बाएं फ्रेम से केवल कुंजियों का उपयोग करें, एसक्यूएल बाईं बाहरी सम्मिलित के समान; कुंजी क्रम संरक्षित करें
  • दाईं ओर: दाएं फ्रेम से केवल कुंजियों का उपयोग करें, एसक्यूएल दाएं बाहरी जोड़ के समान; कुंजी क्रम संरक्षित करें
  • बाहरी: एसक्यूएल पूर्ण बाहरी जुड़ने के समान दोनों फ़्रेमों से कुंजियों के मिलन का उपयोग करें; क्रमबद्ध कुंजियाँ lexicographically
  • इनर: दोनों फ़्रेमों से चौराहे का उपयोग करें, एसक्यूएल इनर जॉइन के समान; बाईं कुंजियों के क्रम को संरक्षित करें

on : लेबल या सूची

पर जुड़ने के लिए कॉलम या इंडेक्स स्तर के नाम। ये दोनों DataFrames में पाया जाना चाहिए। यदि कोई भी नहीं है और अनुक्रमणिका पर विलय नहीं कर रहा है, तो यह दोनों डेटाफ़्रेम में स्तंभों के चौराहे पर चूकता है।

बाएँ_ऑन : लेबल या सूची, या सरणी-जैसा

बाएं DataFrame में शामिल होने के लिए कॉलम या इंडेक्स स्तर के नाम। बाएं डेटाफ़्रेम की लंबाई की सारणियों की एक सरणी या सूची भी हो सकती है। इन सरणियों को ऐसे माना जाता है जैसे वे स्तंभ हैं।

right_on : लेबल या सूची, या सरणी-जैसा

सही DataFrame में शामिल होने के लिए कॉलम या इंडेक्स स्तर के नाम। सही DataFrame की लंबाई के सरणियों की एक सरणी या सूची भी हो सकती है। इन सरणियों को ऐसे माना जाता है जैसे वे स्तंभ हैं।

left_index : बूलियन, डिफ़ॉल्ट गलत

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

right_index : बूलियन, डिफ़ॉल्ट गलत

जॉइन कुंजी के रूप में सही डेटाफ़्रेम से इंडेक्स का उपयोग करें। बाएँ के रूप में समान कैवेट

सॉर्ट : बूलियन, डिफ़ॉल्ट गलत

परिणाम में शब्द कुंजियों को क्रमबद्ध रूप से क्रमबद्ध करें DataFrame। यदि गलत है, तो ज्वाइन कीज का क्रम ज्वाइन टाइप (कैसे कीवर्ड) पर निर्भर करता है

प्रत्यय : 2-लंबाई अनुक्रम (टपल, सूची,…)

क्रमशः बाएँ और दाएँ पक्ष में ओवरलैपिंग कॉलम नामों पर लागू करने के लिए प्रत्यय

कॉपी : बूलियन, डिफ़ॉल्ट सही

यदि गलत है, तो डेटा को अनावश्यक रूप से कॉपी न करें

सूचक : बूलियन या स्ट्रिंग, डिफ़ॉल्ट गलत

यदि सही है, तो प्रत्येक पंक्ति के स्रोत के बारे में जानकारी के साथ "_merge" नामक डेटाफ़्रेम को आउटपुट करने के लिए एक स्तंभ जोड़ता है। यदि स्ट्रिंग, प्रत्येक पंक्ति के स्रोत के बारे में जानकारी के साथ कॉलम को आउटपुट डेटा में जोड़ा जाएगा, और स्तंभ को स्ट्रिंग के मूल्य का नाम दिया जाएगा। सूचना स्तंभ श्रेणीबद्ध प्रकार है और टिप्पणियों के लिए "left_only" के मान पर ले जाता है, जिसकी मर्ज कुंजी केवल 'बाएँ' में दिखाई देती है DataFrame, "right_only" उन टिप्पणियों के लिए जिनकी मर्ज कुंजी केवल 'सही' DataFrame, और "दोनों" में दिखाई देती है यदि हो अवलोकन की मर्ज कुंजी दोनों में पाई जाती है।

मान्य : स्ट्रिंग, डिफ़ॉल्ट कोई नहीं

यदि निर्दिष्ट किया गया है, तो जाँचें कि मर्ज निर्दिष्ट प्रकार का है।

  • "One_to_one" या "1: 1": जाँच करें कि क्या मर्ज कीज़ बाएँ और दाएँ दोनों डेटासेट में अद्वितीय हैं।
  • "One_to_many" या "1: m": जाँचें कि क्या मर्ज कुंजियाँ बाएं डेटासेट में विशिष्ट हैं।
  • "Many_to_one" या "m: 1": चेक करें कि क्या मर्ज कीज़ सही डेटासेट में अद्वितीय हैं।
  • "Many_to_many" या "m: m": अनुमत है, लेकिन चेक में परिणाम नहीं होता है।

संस्करण में नया 0.21.0।

यह दिखाता है:

विलय : डेटाफ़्रेम

आउटपुट प्रकार 'लेफ्ट' के समान होगा, यदि यह डेटाफ्रेम का उपवर्ग है।

यह भी देखें

merge_ordered , merge_asof , DataFrame.join

टिप्पणियाँ

इंडेक्स लेवल को on , left_on , और right_on पैरामीटर निर्दिष्ट करने के लिए सपोर्ट 0.23.0 वर्जन में जोड़ा गया था

उदाहरण

>>> A              >>> B
    lkey value         rkey value
0   foo  1         0   foo  5
1   bar  2         1   bar  6
2   baz  3         2   qux  7
3   foo  4         3   bar  8
>>> A.merge(B, left_on='lkey', right_on='rkey', how='outer')
   lkey  value_x  rkey  value_y
0  foo   1        foo   5
1  foo   4        foo   5
2  bar   2        bar   6
3  bar   2        bar   8
4  baz   3        NaN   NaN
5  NaN   NaN      qux   7