2015-10-12 19 views
13

में सभी पंक्तियों को रखने मैं निम्नलिखित समस्या है: मैं कुछ पंक्तियों और स्तंभों समान मूल्यों और कुछ है कि अलग हैं कि युक्त अलग लंबाई की दो पांडा डेटा फ्रेम है, इस तरह:अलग लंबाई की दो अजगर पांडा डेटा फ्रेम मर्ज लेकिन उत्पादन डेटा फ्रेम

df1:         df2: 

     Column1 Column2 Column3   ColumnA ColumnB ColumnC 
    0 a  x  x   0 c  y  y 
    1 c  x  x   1 e  z  z 
    2 e  x  x   2 a  s  s 
    3 d  x  x   3 d  f  f 
    4 h  x  x 
    5 k  x  x    

क्या अब मैं क्या करने के लिए दो dataframes विलय है चाहते हैं, ताकि अगर Columna और स्तंभ 1 एक ही मूल्य df2 से पंक्तियों DF1 में उससे संबंधित पंक्ति के साथ जोड़ दिया जाता है, इस तरह है:

df1: 
    Column1 Column2 Column3 ColumnB ColumnC 
    0 a  x  x  s  s 
    1 c  x  x  y  y 
    2 e  x  x  z  z 
    3 d  x  x  f  f 
    4 h  x  x  NaN  NaN 
    5 k  x  x  NaN  NaN 

मुझे पता है कि मर्ज अपरोक्ष संभव है ugh df1.merge(df2,left_on='Column1', right_on='ColumnA'), लेकिन यह आदेश उन सभी पंक्तियों को छोड़ देता है जो कॉलम 1 और कॉलम ए में दोनों फाइलों में समान नहीं हैं। इसके बजाय मैं इन पंक्तियों को डीएफ 1 में रखना चाहता हूं और उनको कॉलम में केवल उनसे एनएन असाइन करना चाहता हूं, जहां ऊपर दिखाए गए अनुसार अन्य पंक्तियों में डीएफ 2 से कोई मान है। क्या पांडा में ऐसा करने का कोई आसान तरीका है?

अग्रिम धन्यवाद!

उत्तर

14

आप यहाँ प्रलेखन पढ़ सकते हैं: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.merge.html

क्या आप देख रहे हैं एक छोड़ दिया में शामिल होने के लिए है। डिफ़ॉल्ट विकल्प एक आंतरिक शामिल है। आप एक अलग कैसे तर्क पारित करके इस व्यवहार को बदल सकते हैं:

df1.merge(df2,how='left', left_on='Column1', right_on='ColumnA') 
+0

मैं वह वास्तव में 'छोड़ा 'में शामिल होने के लिए – Mathiou

+0

:) लग रही है तुम ठीक कह रहे है। मैं जवाब संपादित कर दूंगा। – Sina

+0

मैं प्रलेखन पढ़ूंगा, तेज़ उत्तर के लिए धन्यवाद! ठीक काम करता है। –

3

आप बस का पालन link पर का उपयोग करने और सूची के रूप में अच्छी तरह से

result = df1.merge(df2, on=['Column1']) 

अधिक जानकारी के लिए के साथ विलय का उपयोग कर सकते merge() के लिए एक पैरामीटर पारित कर सकते हैं

संबंधित मुद्दे