2016-08-16 9 views
8

मेरे पास इसमें कई कॉलम के साथ डेटाफ्रेम है। अब मैं केवल कुछ कॉलम चुनना चाहता हूं। मैंने कॉलम के सभी नामों को सहेज लिया है जिन्हें मैं पाइथन सूची में चुनना चाहता हूं और अब मैं इस सूची के अनुसार अपना डेटाफ्रेम फ़िल्टर करना चाहता हूं।पाइथन पांडा कॉलम नामों की सूची के माध्यम से डेटाफ्रेम से कॉलम का चयन

मैं क्या करने की कोशिश कर रहा है:

df_new = df[[list]] 

जहां सूची सभी कॉलम नामों में है कि मैं चयन करना चाहते हैं शामिल हैं।

TypeError: unhashable type: 'list' 

इस पर किसी भी मदद की:

हालांकि मैं त्रुटि मिलती है?

उत्तर

8

आप निकाल सकते हैं एक []:

df_new = df[list] 

इसके अलावा बेहतर list है, उदा अन्य नाम का उपयोग है L:

df_new = df[L] 

यह काम करना कैसा लग, मैं केवल यह आसान बनाने का प्रयास करें:

L = [] 
for x in df.columns: 
    if not "_" in x[-3:]: 
     L.append(x) 
print (L) 

List comprehension:

print ([x for x in df.columns if not "_" in x[-3:]]) 
+0

पहले से ही उस की कोशिश की। हालांकि मुझे एक त्रुटि मिली है कि सूची में नाम "इंडेक्स में नहीं हैं": एस – AaronDT

+0

तो फिर मेल नहीं खाते हैं। आप 'सूची' कैसे बनाते हैं? 'Print df.columns' क्या है? – jezrael

+0

मैंने पहले सभी हेडर नाम प्राप्त करने के लिए निम्न कोड का उपयोग किया है और उन्हें header_names में सहेज लिया है। फिर मैं एक निश्चित मानदंड के अनुसार हेडर नाम फ़िल्टर कर रहा हूं। header_names = सूची (df.columns.values) header_names में एक्स के लिए : y = एक्स [-3:] अगर "_" y में: पास बाकी: L.append (एक्स) – AaronDT

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