2013-06-05 10 views
8

का उपयोग करके डेटाफ्रेम से डुप्लिकेट कॉलम को कैसे हटाएं दो कॉलमों को समूहीकृत करके मैंने कुछ बदलाव किए हैं।पाइथन पांडा

मैंने पायथन का उपयोग करके एक फ़ाइल जेनरेट की, जिसके परिणामस्वरूप 2 डुप्लिकेट कॉलम हुए। डेटाफ्रेम से डुप्लिकेट कॉलम कैसे निकालें?

+0

क्या उनके पास समान कॉलम नाम है? – waitingkuo

उत्तर

17

यह शायद एक GroupBy उपयोग करने के लिए सबसे आसान है (यह मानते हुए कि वे भी डुप्लिकेट नाम):

In [11]: df 
Out[11]: 
    A B B 
0 a 4 4 
1 b 4 4 
2 c 4 4 

In [12]: df.T.groupby(level=0).first().T 
Out[12]: 
    A B 
0 a 4 
1 b 4 
2 c 4 

यदि वे अलग नाम है आप पक्षांतरित पर कर सकते हैं drop_duplicates:

In [21]: df 
Out[21]: 
    A B C 
0 a 4 4 
1 b 4 4 
2 c 4 4 

In [22]: df.T.drop_duplicates().T 
Out[22]: 
    A B 
0 a 4 
1 b 4 
2 c 4 

आमतौर पर read_csv आमतौर पर सुनिश्चित करेगा कि उनके पास अलग-अलग नाम हैं ...

+0

एफवाईआई @ एंडी, 0.11.1 में एक नया विकल्प है जो इस 'mangle_dup_cols'' को नियंत्रित करता है; डिफ़ॉल्ट रूप से 0.12 में मैंगल (उदाहरण के लिए अद्वितीय कोल्स का उत्पादन) है, यह – Jeff

2

बड़े डेटाफ्रेम के साथ काम करते समय ट्रांसपोजिंग एक बुरा विचार है। मेमोरी कुशल विकल्प के लिए यह उत्तर देखें: https://stackoverflow.com/a/32961145/759442

+0

जगह पर डुप्लिकेट छोड़ने के लिए बदलेगा, बस दूसरों के लिए एक नोट है कि सबसे अच्छा जवाब उस धागे में स्वीकार्य नहीं है। सर्वश्रेष्ठ उत्तर -> https://stackoverflow.com/a/40435354/2507197 – Alter

0

मैं समझता हूँ कि यह एक पुराने सवाल है, लेकिन मैं हाल ही में यह एक ही मुद्दा था और इन समाधानों में से कोई भी मेरे लिए काम किया, या पाशन सुझाव थोड़ा overkill लग रहा था। अंत में, मुझे बस अवांछित डुप्लिकेट कॉलम की अनुक्रमणिका मिली और उस कॉलम इंडेक्स को गिरा दिया। इसलिए बशर्ते आप कॉलम की अनुक्रमणिका जानेंगे जो यह काम करेगा (जो आप शायद डिबगिंग या प्रिंट कथन के माध्यम से पा सकते हैं):

df.drop(df.columns[i], axis=1)