pandas 0.23 - pandas.concat()

pandas.concat




pandas

pandas.concat

pandas.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=None, copy=True) [source]

अन्य अक्षों के साथ वैकल्पिक सेट लॉजिक के साथ एक विशेष अक्ष के साथ पंडेट ऑब्जेक्ट्स को मिलाएं।

समवर्ती अक्ष पर पदानुक्रमित अनुक्रमण की एक परत भी जोड़ सकते हैं, जो उपयोगी हो सकता है यदि लेबल पारित अक्ष संख्या पर समान (या अतिव्यापी) हैं।

पैरामीटर:

objs : श्रृंखला, DataFrame, या पैनल ऑब्जेक्ट्स का एक अनुक्रम या मानचित्रण

यदि एक तानाशाही पारित किया जाता है, तो छांटे गए कुंजियों को keys तर्क के रूप में उपयोग किया जाएगा, जब तक कि इसे पारित नहीं किया जाता है, जिस स्थिति में मूल्यों का चयन किया जाएगा (नीचे देखें)। जब तक वे सभी नहीं हैं, तब तक किसी भी वस्तु को चुपचाप नहीं गिराया जाएगा, इस मामले में एक वैल्यूएयर उठाया जाएगा

अक्ष : {0 / 'इंडेक्स', 1 / 'कॉलम'}, डिफ़ॉल्ट 0

साथ करने के लिए अक्ष

शामिल हों : {'भीतर', 'बाहरी'}, डिफ़ॉल्ट 'बाहरी'

अनुक्रमणिका को अन्य अक्ष पर कैसे संभालें (तों)

join_axes : इंडेक्स ऑब्जेक्ट्स की सूची

आंतरिक / बाहरी सेट तर्क प्रदर्शन करने के बजाय अन्य n - 1 कुल्हाड़ियों के लिए उपयोग करने के लिए विशिष्ट अनुक्रमित

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

यदि सही है, तो अनुक्रमण अक्ष के साथ इंडेक्स मान का उपयोग न करें। परिणामी अक्ष को 0,…, n - 1 के रूप में लेबल किया जाएगा। यह तब उपयोगी होता है जब आप ऐसी वस्तुओं का संघटन कर रहे होते हैं, जहां संघनन अक्ष में सार्थक अनुक्रमण जानकारी नहीं होती है। नोट करें कि अन्य अक्षों पर सूचकांक मान अभी भी जुड़ने में सम्मानित हैं।

चाबियाँ : अनुक्रम, डिफ़ॉल्ट कोई नहीं

यदि कई स्तर पास हो गए हैं, तो ट्यूपल्स होने चाहिए। बाहरी स्तर के रूप में पारित कुंजियों का उपयोग करके पदानुक्रमित सूचकांक का निर्माण करें

स्तर : अनुक्रमों की सूची, डिफ़ॉल्ट कोई नहीं

MultiIndex निर्माण के लिए उपयोग करने के लिए विशिष्ट स्तर (अद्वितीय मान)। अन्यथा वे कुंजियों से हीन हो जाएंगे

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

परिणामी पदानुक्रमित सूचकांक में स्तरों के लिए नाम

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

जांचें कि क्या नए कॉन्टेनेटेड अक्ष में डुप्लिकेट हैं। यह वास्तविक डेटा संगति के सापेक्ष बहुत महंगा हो सकता है

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

अगर यह 'बाहरी' है, तो गैर-संघनन अक्ष को पहले से ही क्रमबद्ध न करें। छंटनी का वर्तमान डिफ़ॉल्ट पदावनत है और भविष्य के पांडा के संस्करण में छँटाई नहीं करने के लिए बदल जाएगा।

स्पष्ट रूप से पास करना sort=True चेतावनी और सॉर्ट करने के लिए sort=True । स्पष्ट रूप से पास करना sort=False चेतावनी को चुप करने के लिए sort=False और छाँटना नहीं।

join='inner' इसका कोई प्रभाव नहीं है join='inner' , जो पहले से ही गैर-संघनन अक्ष के आदेश को संरक्षित करता है।

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

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

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

यह दिखाता है:

संक्षिप्त : वस्तु, प्रकार के ओब्जेक्ट्स

जब सभी Series को अनुक्रमणिका (अक्ष = 0) के साथ समेटना होता है, तो एक Series लौटा दी जाती है। जब objs में कम से कम एक DataFrame , तो एक DataFrame वापस आ जाता है। स्तंभ (अक्ष = 1) के साथ DataFrame , एक DataFrame वापस आ जाता है।

टिप्पणियाँ

चाबियाँ, स्तर और नाम तर्क सभी वैकल्पिक हैं।

पांडा वस्तुओं के संयोजन के लिए अन्य तरीकों के साथ यह विधि कैसे फिट होती है, इसका एक पूर्वाभ्यास here पाया जा सकता here

उदाहरण

दो Series मिलाएं।

>>> s1 = pd.Series(['a', 'b'])
>>> s2 = pd.Series(['c', 'd'])
>>> pd.concat([s1, s2])
0    a
1    b
0    c
1    d
dtype: object

मौजूदा सूचकांक को साफ़ करें और इसे True ignore_index विकल्प सेट करके परिणाम में रीसेट करें।

>>> pd.concat([s1, s2], ignore_index=True)
0    a
1    b
2    c
3    d
dtype: object

keys विकल्प के साथ डेटा के सबसे बाहरी स्तर पर एक पदानुक्रमित सूचकांक जोड़ें।

>>> pd.concat([s1, s2], keys=['s1', 's2',])
s1  0    a
    1    b
s2  0    c
    1    d
dtype: object

names विकल्प के साथ आपके द्वारा बनाई गई सूचकांक कुंजियों को लेबल करें।

>>> pd.concat([s1, s2], keys=['s1', 's2'],
...           names=['Series name', 'Row ID'])
Series name  Row ID
s1           0         a
             1         b
s2           0         c
             1         d
dtype: object

समान कॉलम के साथ दो DataFrame ऑब्जेक्ट को DataFrame

>>> df1 = pd.DataFrame([['a', 1], ['b', 2]],
...                    columns=['letter', 'number'])
>>> df1
  letter  number
0      a       1
1      b       2
>>> df2 = pd.DataFrame([['c', 3], ['d', 4]],
...                    columns=['letter', 'number'])
>>> df2
  letter  number
0      c       3
1      d       4
>>> pd.concat([df1, df2])
  letter  number
0      a       1
1      b       2
0      c       3
1      d       4

अतिव्यापी कॉलम के साथ DataFrame ऑब्जेक्ट को DataFrame और सब कुछ वापस करें। चौराहे के बाहर के कॉलम NaN मूल्यों से भरे होंगे।

>>> df3 = pd.DataFrame([['c', 3, 'cat'], ['d', 4, 'dog']],
...                    columns=['letter', 'number', 'animal'])
>>> df3
  letter  number animal
0      c       3    cat
1      d       4    dog
>>> pd.concat([df1, df3])
  animal letter  number
0    NaN      a       1
1    NaN      b       2
0    cat      c       3
1    dog      d       4

ओवरलैपिंग कॉलम के साथ DataFrame ऑब्जेक्ट्स को DataFrame और केवल उन लोगों को वापस लौटाएं जो inner कीवर्ड तर्क में join होकर inner से साझा किए जाते हैं।

>>> pd.concat([df1, df3], join="inner")
  letter  number
0      a       1
1      b       2
0      c       3
1      d       4

axis=1 में उत्तीर्ण करके एक्स अक्ष के साथ DataFrame ऑब्जेक्ट्स को क्षैतिज रूप से DataFrame

>>> df4 = pd.DataFrame([['bird', 'polly'], ['monkey', 'george']],
...                    columns=['animal', 'name'])
>>> pd.concat([df1, df4], axis=1)
  letter  number  animal    name
0      a       1    bird   polly
1      b       2  monkey  george

डुप्लिकेट इंडेक्स मानों को verify_integrity विकल्प के साथ परिणाम से रोकें।

>>> df5 = pd.DataFrame([1], index=['a'])
>>> df5
   0
a  1
>>> df6 = pd.DataFrame([2], index=['a'])
>>> df6
   0
a  2
>>> pd.concat([df5, df6], verify_integrity=True)
Traceback (most recent call last):
    ...
ValueError: Indexes have overlapping values: ['a']