पांडा: समान नाम वाले कॉलम को कैसे मर्ज करें


आप समान कॉलम नाम साझा करने वाले पांडा डेटाफ़्रेम में कॉलम मर्ज करने के लिए निम्नलिखित मूल सिंटैक्स का उपयोग कर सकते हैं:

 #define function to merge columns with same names together
def same_merge (x): return ' , '. join (x[ x.notnull ()]. astype (str))

#define new DataFrame that merges columns with same names together
df_new = df. groupby (level= 0 , axis= 1 ). apply ( lambda x: x.apply (same_merge,axis= 1 ))

निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस वाक्यविन्यास का उपयोग कैसे करें।

उदाहरण: पांडा में समान नाम साझा करने वाले कॉलम मर्ज करें

मान लीजिए हमारे पास निम्नलिखित पांडा डेटाफ़्रेम हैं:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' A ': [5, 6, 8, np.nan, 4, np.nan, np.nan],
                   ' A1 ': [np.nan, 12, np.nan, 10, np.nan, 6, 4],
                   ' B ': [2, 7, np.nan, np.nan, 2, 4, np.nan],
                   ' B1 ': [5, np.nan, 6, 15, 1, np.nan, 4]})

#rename columns so there are duplicate column names
df. columns = [' A ', ' A ', ' B ', ' B ']

#view DataFrame
print (df)

     AABB
0 5.0 NaN 2.0 5.0
1 6.0 12.0 7.0 NaN
2 8.0 NaN NaN 6.0
3 NaN 10.0 NaN 15.0
4 4.0 NaN 2.0 1.0
5 NaN 6.0 4.0 NaN
6 NaN 4.0 NaN 4.0

ध्यान दें कि दो कॉलमों का नाम “ए” है और दो कॉलमों का नाम “बी” है।

हम समान कॉलम नाम वाले कॉलम को मर्ज करने और उनके मानों को अल्पविराम से जोड़ने के लिए निम्नलिखित कोड का उपयोग कर सकते हैं:

 #define function to merge columns with same names together
def same_merge (x): return ' , '. join (x[ x.notnull ()]. astype (str))

#define new DataFrame that merges columns with same names together
df_new = df. groupby (level= 0 , axis= 1 ). apply ( lambda x: x.apply (same_merge,axis= 1 ))

#view new DataFrame
print (df_new)

          AB
0 5.0 2.0,5.0
1 6.0,12.0 7.0
2 8.0 6.0
3 10.0 15.0
4 4.0 2.0,1.0
5 6.0 4.0
6 4.0 4.0

नए डेटाफ़्रेम ने समान नामों वाले कॉलमों को मर्ज कर दिया और उनके मानों को अल्पविराम से जोड़ दिया।

यदि आप किसी भिन्न विभाजक का उपयोग करना चाहते हैं, तो बस समान_मर्ज() फ़ंक्शन में अल्पविराम विभाजक को किसी अन्य चीज़ से बदलें।

उदाहरण के लिए, निम्नलिखित कोड दिखाता है कि इसके बजाय अर्धविराम विभाजक का उपयोग कैसे करें:

 #define function to merge columns with same names together
def same_merge (x): return ' ; '. join (x[ x.notnull ()]. astype (str))

#define new DataFrame that merges columns with same names together
df_new = df. groupby (level= 0 , axis= 1 ). apply ( lambda x: x.apply (same_merge,axis= 1 ))

#view new DataFrame
print (df_new)

          AB
0 5.0 2.0;5.0
1 6.0;12.0 7.0
2 8.0 6.0
3 10.0 15.0
4 4.0 2.0;1.0
5 6.0 4.0
6 4.0 4.0

नए डेटाफ़्रेम ने समान नामों वाले स्तंभों को मर्ज कर दिया और उनके मानों को अर्धविराम से जोड़ दिया।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि पांडा में अन्य सामान्य ऑपरेशन कैसे करें:

पांडा में डुप्लिकेट कॉलम कैसे हटाएं
पांडा में सभी कॉलम नामों को कैसे सूचीबद्ध करें
पंडों में नाम के आधार पर कॉलम कैसे क्रमबद्ध करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *