2016-04-11 10 views
14

में इंडेक्स पर डेटाफ्रेम विलय करना मेरे पास दो डेटाफ्रेम हैं और प्रत्येक में दो इंडेक्स कॉलम हैं। मैं उन्हें मर्ज करना चाहता हूं। उदाहरण के लिए, पहले dataframe है निम्नलिखित:पांडास

     V1 

    A  1/1/2012 12 
      2/1/2012 14 
    B  1/1/2012 15 
      2/1/2012 8 
    C  1/1/2012 17 
      2/1/2012 9 

दूसरा dataframe निम्नलिखित है:

     V2 

    A  1/1/2012 15 
      3/1/2012 21    
    B  1/1/2012 24 
      2/1/2012 9 
    D  1/1/2012 7 
      2/1/2012 16 

और परिणाम के रूप में मैं निम्नलिखित प्राप्त करना चाहते हैं:

     V1 V2 

    A  1/1/2012 12 15 
      2/1/2012 14 N/A 
      3/1/2012 N/A 21   
    B  1/1/2012 15 24 
      2/1/2012 8 9 
    C  1/1/2012 7 N/A 
      2/1/2012 16 N/A 
    D  1/1/2012 N/A 7 
      2/1/2012 N/A 16 

मैं कुछ संस्करण usig pd.merge और .join की कोशिश की है, लेकिन कुछ भी काम नहीं लगता है। क्या तुम्हारे पास कोई सुझाव है? आपका बहुत बहुत धन्यवाद।

+0

pd.concat आज़माएं ... यह काम करना चाहिए। http://pandas.pydata.org/pandas-docs/stable/generated/pandas.concat.html .. आप अक्ष का चयन कर सकते हैं जिस पर आप डेटाफ्रेम में शामिल होना चाहते हैं। – Joey

उत्तर

18

आप जो डिफ़ॉल्ट के रूप में सूचकांक पर मिलती है join उपयोग करने के लिए, सक्षम होना चाहिए। आपके वांछित परिणाम को देखते हुए, आपको outer का उपयोग प्रकार के रूप में करना होगा।

>>> df1.join(df2, how='outer') 
      V1 V2 
A 1/1/2012 12 15 
    2/1/2012 14 NaN 
    3/1/2012 NaN 21 
B 1/1/2012 15 24 
    2/1/2012 8 9 
C 1/1/2012 17 NaN 
    2/1/2012 9 NaN 
D 1/1/2012 NaN 7 
    2/1/2012 NaN 16 

हस्ताक्षर: _.join (अन्य, = कोई नहीं, कैसे = 'छोड़', lsuffix = '', rsuffix = '', प्रकार = झूठी पर) Docstring: अन्य DataFrame साथ कॉलम में शामिल हों या तो सूचकांक पर या एक कुंजी कॉलम पर। एक सूची उत्तीर्ण करके द्वारा एक बार इंडेक्स द्वारा कई डेटाफ्रेम ऑब्जेक्ट्स में कुशलता से जुड़ें।

+0

यह काम करता है, धन्यवाद! – km1234

5

आप merge के साथ ऐसा कर सकते हैं:

df_merged = df1.merge(df2, how='outer', left_index=True, right_index=True) 

कीवर्ड तर्क how='outer'NaN साथ सूचकांक लापता भरते हुए, दोनों फ्रेम से सभी सूचकांकों रहता है। left_index और right_index कीवर्ड तर्कों में इंडेक्स पर विलय किया जाना है। यदि आपको मर्ज करने के बाद कॉलम में सभी NaN मिलते हैं, तो एक अन्य समस्या निवारण चरण यह सत्यापित करना है कि आपके सूचकांक में dtypes है।

merge कोड ऊपर मेरे लिए निम्नलिखित उत्पादन का उत्पादन:

   V1 V2 
A 2012-01-01 12.0 15.0 
    2012-02-01 14.0 NaN 
    2012-03-01 NaN 21.0 
B 2012-01-01 15.0 24.0 
    2012-02-01 8.0 9.0 
C 2012-01-01 17.0 NaN 
    2012-02-01 9.0 NaN 
D 2012-01-01 NaN 7.0 
    2012-02-01 NaN 16.0 
+0

यह भी काम करता है, धन्यवाद! – km1234