हैरानी की बात है कि मैंने इसे अब तक पोस्ट नहीं किया है, इसलिए मैं इसे यहां छोड़ दूंगा।
विस्तारित Iterable अनपैकिंग (python3.5 +): [*df]और मित्र
पाइथन 3.5 के साथ अनपैकेजिंग जेनरेशन (PEP 448) पेश किया गया है। तो, निम्नलिखित ऑपरेशन सभी संभव हैं।
df = pd.DataFrame('x', columns=['A', 'B', 'C'], index=range(5))
df
A B C
0 x x x
1 x x x
2 x x x
3 x x x
4 x x x
अगर तुम चाहो तो list…।
[*df]
# ['A', 'B', 'C']
या, यदि आप चाहते हैं set,
{*df}
# {'A', 'B', 'C'}
या, यदि आप चाहते हैं ए tuple,
*df, # Please note the trailing comma
# ('A', 'B', 'C')
या, यदि आप परिणाम को कहीं स्टोर करना चाहते हैं,
*cols, = df # A wild comma appears, again
cols
# ['A', 'B', 'C']
... यदि आप उस तरह के व्यक्ति हैं जो कॉफी को टाइपिंग ध्वनियों में परिवर्तित करता है, ठीक है, यह आपके कॉफी को अधिक कुशलता से खपत करता है;)
पुनश्च: यदि प्रदर्शन महत्वपूर्ण है, तो आप ऊपर दिए गए समाधानों को अपने पक्ष में करना चाहेंगे
df.columns.to_numpy().tolist()
# ['A', 'B', 'C']
यह एड चुम के उत्तर के समान है , लेकिन v0.24 के लिए अद्यतन किया जाता है, जहां .to_numpy()के उपयोग को प्राथमिकता दी जाती है .values। देखें
क्या यह उत्तर में अधिक जानकारी के लिए (मेरे द्वारा)।
दृश्य की जाँच करें
जब से मैंने इसे अन्य उत्तरों में चर्चा करते हुए देखा है, आप पुनरावृत्त अनपैकिंग (स्पष्ट छोरों की कोई आवश्यकता नहीं) का उपयोग कर सकते हैं।
print(*df)
A B C
print(*df, sep='\n')
A
B
C
अन्य तरीकों की आलोचना
एक स्पष्ट उपयोग न करें forएक ऑपरेशन के लिए लूप का एक पंक्ति में किया जा सकता है (सूची समझ ठीक है)।
अगला, उपयोग करना स्तंभों sorted(df) के मूल क्रम को संरक्षित नहीं करता है । उसके लिए, आपको उपयोग करना चाहिएlist(df) इसके बजाय ।
अगला, list(df.columns)और list(df.columns.values)खराब सुझाव हैं (वर्तमान संस्करण के रूप में, v0.24)। दोनों Index( df.columnsऔर से लौटे ) और NumPy सरणियाँ (द्वारा लौटी df.columns.values) परिभाषित करती हैं.tolist() विधि है जो तेज और अधिक मुहावरेदार है।
अन्त में, सूचीकरण अर्थात्, list(df)केवल अजगर के लिए उपरोक्त विधियों के संक्षिप्त विकल्प के रूप में उपयोग किया जाना चाहिए <= 3.4 जहाँ विस्तारित अनपैकिंग उपलब्ध नहीं है।
columnsमें एक विशेषता के रूप में क्यों नहीं है ?