का उपयोग करके डेटाफ्रेम से डुप्लिकेट कॉलम को कैसे हटाएं दो कॉलमों को समूहीकृत करके मैंने कुछ बदलाव किए हैं।पाइथन पांडा
मैंने पायथन का उपयोग करके एक फ़ाइल जेनरेट की, जिसके परिणामस्वरूप 2 डुप्लिकेट कॉलम हुए। डेटाफ्रेम से डुप्लिकेट कॉलम कैसे निकालें?
का उपयोग करके डेटाफ्रेम से डुप्लिकेट कॉलम को कैसे हटाएं दो कॉलमों को समूहीकृत करके मैंने कुछ बदलाव किए हैं।पाइथन पांडा
मैंने पायथन का उपयोग करके एक फ़ाइल जेनरेट की, जिसके परिणामस्वरूप 2 डुप्लिकेट कॉलम हुए। डेटाफ्रेम से डुप्लिकेट कॉलम कैसे निकालें?
यह शायद एक 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.11.1 में एक नया विकल्प है जो इस 'mangle_dup_cols'' को नियंत्रित करता है; डिफ़ॉल्ट रूप से 0.12 में मैंगल (उदाहरण के लिए अद्वितीय कोल्स का उत्पादन) है, यह – Jeff
बड़े डेटाफ्रेम के साथ काम करते समय ट्रांसपोजिंग एक बुरा विचार है। मेमोरी कुशल विकल्प के लिए यह उत्तर देखें: https://stackoverflow.com/a/32961145/759442
जगह पर डुप्लिकेट छोड़ने के लिए बदलेगा, बस दूसरों के लिए एक नोट है कि सबसे अच्छा जवाब उस धागे में स्वीकार्य नहीं है। सर्वश्रेष्ठ उत्तर -> https://stackoverflow.com/a/40435354/2507197 – Alter
यह अब तक का सबसे अच्छा है।
remove = []
cols = df.columns
for i in range(len(cols)-1):
v = df[cols[i]].values
for j in range(i+1,len(cols)):
if np.array_equal(v,df[cols[j]].values):
remove.append(cols[j])
df.drop(remove, axis=1, inplace=True)
मैं समझता हूँ कि यह एक पुराने सवाल है, लेकिन मैं हाल ही में यह एक ही मुद्दा था और इन समाधानों में से कोई भी मेरे लिए काम किया, या पाशन सुझाव थोड़ा overkill लग रहा था। अंत में, मुझे बस अवांछित डुप्लिकेट कॉलम की अनुक्रमणिका मिली और उस कॉलम इंडेक्स को गिरा दिया। इसलिए बशर्ते आप कॉलम की अनुक्रमणिका जानेंगे जो यह काम करेगा (जो आप शायद डिबगिंग या प्रिंट कथन के माध्यम से पा सकते हैं):
df.drop(df.columns[i], axis=1)
क्या उनके पास समान कॉलम नाम है? – waitingkuo