पांडा डेटाफ़्रेम पर सभी स्तंभों के नाम कैसे दिखाएं?


127

मेरे पास एक डेटाफ्रेम है जिसमें सैकड़ों कॉलम शामिल हैं, और मुझे सभी कॉलम नामों को देखने की आवश्यकता है।

मैंने क्या किया:

In[37]:
data_all2.columns

आउटपुट है:

Out[37]:
Index(['customer_id', 'incoming', 'outgoing', 'awan', 'bank', 'family', 'food',
       'government', 'internet', 'isipulsa',
       ...
       'overdue_3months_feature78', 'overdue_3months_feature79',
       'overdue_3months_feature80', 'overdue_3months_feature81',
       'overdue_3months_feature82', 'overdue_3months_feature83',
       'overdue_3months_feature84', 'overdue_3months_feature85',
       'overdue_3months_feature86', 'loan_overdue_3months_total_y'],
      dtype='object', length=102)

मैं एक छंटनी सूची के बजाय सभी कॉलम कैसे दिखाऊं?

जवाबों:


194

आप विश्व स्तर पर मुद्रण विकल्प सेट कर सकते हैं। मुझे लगता है कि यह काम करना चाहिए:

विधि 1:

pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)

विधि 2:

pd.options.display.max_columns = None
pd.options.display.max_rows = None

यह आपको सभी कॉलम नाम और पंक्तियों को देखने की अनुमति देगा जब आप कर रहे हैं .head()। किसी भी स्तंभ का नाम छोटा नहीं होगा।


यदि आप केवल उन स्तंभ नामों को देखना चाहते हैं जो आप कर सकते हैं:

print(df.columns.tolist())

3
@ ईईई नहीं, यह प्रश्न का उत्तर देता है। मैंने अभी इसकी कोशिश की, यह एक छंटनी की सूची के बजाय सभी कॉलम प्रदर्शित करता है। उन्होंने कहा कि क्षेत्र को छोटा नहीं किया गया, उन्होंने कहा कि स्तंभ सूची।
rjurney

3
आह, तुम सही हो। मैं गलत था। धन्यवाद, @rjurney और क्षमा करें YOLO। मैं df.head के बजाय df.columns कर रहा था ()! क्या मुझे अपनी गलत टिप्पणी पहले हटा देनी चाहिए?
ईईई

हाँ, मुझे ऐसा लगता है।
22

1
यह 500 की तरह एक निश्चित मूल्य निर्धारित करने के लिए ज्यादा बेहतर है अन्यथा यह हमेशा के लिए ले जाएगा चलाने के लिए अगर आप एक बड़ा dataframe प्रिंट
थॉमस जी

क्षमा करें, लेकिन इसे बंद कैसे करें? वर्तमान में मेरा गूंगा समाधान केवल एनाकोंडा को बंद करने और इसे फिर से खोलने के लिए है। अच्छा, क्या ऐसा करने के बिना इसे बाहर निकालने के लिए कोई कानूनी है?
चेन लिजी जूल

44

किसी DataFrame के सभी कॉलम नाम प्राप्त करने के लिए, df_dataइस उदाहरण में, आपको बस कमांड का उपयोग करने की आवश्यकता है df_data.columns.values। यह आपको आपके डेटाफ़्रेम के सभी कॉलम नामों के साथ एक सूची दिखाएगा

कोड:

df_data=pd.read_csv('../input/data.csv')
print(df_data.columns.values)

आउटपुट:

['PassengerId' 'Survived' 'Pclass' 'Name' 'Sex' 'Age' 'SibSp' 'Parch' 'Ticket' 'Fare' 'Cabin' 'Embarked']

इस सवाल का असली जवाब है, शुक्रिया @ Pink.slash
इंटरलोपर

यदि मैं कॉलम संख्याएँ भी देखना चाहता हूँ - क्या यह संभव है? मेरे df में 200 कॉलम हैं और मैं उनमें से एक अंश का उपयोग करना चाहूंगा, और सोच रहा था कि मैं प्रत्येक कॉलम नाम लिखने के बजाय संख्याओं का उपयोग कर सकता हूं।
Mactilda

10

इंटरैक्टिव कंसोल में, यह करना आसान है:

data_all2.columns.tolist()

या यह एक स्क्रिप्ट के भीतर:

print(data_all2.columns.tolist())

6

यह चाल चलेगा। नोट display()प्रिंट के बजाय उपयोग पर ध्यान दें ।

with pd.option_context('display.max_rows', 5, 'display.max_columns', None): 
    display(my_df)

संपादित करें:

का उपयोग displayआवश्यक है क्योंकि pd.option_contextसेटिंग्स केवल लागू होती हैं displayऔर नहीं print


मुझे withकेवल ब्लॉक के नीचे विकल्प लागू करने के लिए कीवर्ड पसंद है । हालाँकि इसके साथ अच्छा काम करता है print()। मुझे display()इसके बजाय उपयोग करने की आवश्यकता क्यों होगी print()?
विंसेंट अगामी

@VincentAgami प्रदर्शन का उपयोग आवश्यक है क्योंकि pd.option_context सेटिंग्स केवल प्रदर्शन के लिए लागू होती हैं और प्रिंट करने के लिए नहीं। मैंने इस जानकारी को शामिल करने के लिए उत्तर को अपडेट कर दिया है।
निको

3

मेरे लिए क्या काम निम्नलिखित था:

pd.options.display.max_seq_items = None

आप इसे अपने स्तंभों की संख्या से अधिक पूर्णांक पर भी सेट कर सकते हैं।


3

सबसे आसान तरीका मैंने पाया है

list(df.columns)

व्यक्तिगत रूप से मैं ग्लोबल्स को बदलना नहीं चाहूंगा, ऐसा नहीं है कि अक्सर मैं सभी कॉलम नामों को देखना चाहता हूं।


2

सभी स्तंभ नाम तुम पर पुनरावृति कर सकते हैं प्राप्त करने के लिए data_all2.columns

columns = data_all2.columns
for col in columns:
    print col

आपको सभी कॉलम नाम मिल जाएंगे। या आप सभी स्तंभ नामों को किसी अन्य सूची चर में संग्रहीत कर सकते हैं और फिर सूची मुद्रित कर सकते हैं।


1

यदि आप केवल सभी कॉलम देखना चाहते हैं, तो आप इस तरह के कुछ को जल्दी ठीक कर सकते हैं

cols = data_all2.columns

अब कोल एक पुनरावृत्त चर के रूप में व्यवहार करेगा जिसे अनुक्रमित किया जा सकता है। उदाहरण के लिए

cols[11:20]

1

एक त्वरित और गंदा समाधान इसे एक स्ट्रिंग में बदलना होगा

print('\t'.join(data_all2.columns))

इन सभी को अलग-अलग टैब द्वारा अलग-अलग मुद्रित करने का कारण होगा, ध्यान दें कि 102 नामों के साथ, उन सभी को लंबे समय तक, यह पढ़ने में थोड़ा कठिन होगा


1

मेरे पास बहुत से डुप्लिकेट कॉलम नाम थे, और एक बार मैं भाग गया

df = df.loc[:,~df.columns.duplicated()]

मैं स्तंभों की पूरी सूची देखने में सक्षम था

साभार: https://stackoverflow.com/a/40435354/5846417


1

आप यह कोशिश कर सकते हैं

pd.pandas.set_option('display.max_columns', None)

1

एक पारंपरिक जवाब नहीं है, लेकिन मुझे लगता है कि आप कॉलम के बजाय पंक्तियों को देखने के लिए डेटाफ्रेम को स्थानांतरित कर सकते हैं। मैं इसका उपयोग करता हूं क्योंकि मुझे पंक्तियों को देखने की तुलना में पंक्तियों को अधिक 'अंतर्ज्ञान' में देखना है:

data_all2.T

यह आपको सभी पंक्तियों को देखने देना चाहिए। यह क्रिया स्थायी नहीं है , यह आपको डेटाफ़्रेम के ट्रांसपोज़्ड संस्करण को देखने की सुविधा देती है।

यदि पंक्तियों को अभी भी काट दिया गया है, तो बस print(data_all2.T)सब कुछ देखने के लिए उपयोग करें।


एक पारंपरिक जवाब नहीं है, लेकिन मुझे लगता है कि आप कॉलम के बजाय पंक्तियों को देखने के लिए डेटाफ्रेम को स्थानांतरित कर सकते हैं। वे सभी चाहते हैं कि कॉलम के नाम हैं, नहीं? यदि पंक्तियों को अभी भी छोटा किया गया है, तो सब कुछ देखने के लिए बस प्रिंट (data_all2.T) का उपयोग करें। परिणाम को प्रिंट करने से समस्या कैसे हल होगी? क्या आप इसे पहले से ही नहीं छाप रहे हैं?
एएमसी

0

यह मेरा तरीका है। मैं कभी सौ स्तंभों के लिए प्रयास नहीं करता। लेकिन मुझे लगता है कि यह काम करता है

your_dataframe.info()

0

मुझे पता है कि यह एक पुनरावृत्ति है, लेकिन मैं हमेशा कॉपी पेस्ट को समाप्त करता हूं और योओ के उत्तर को संशोधित करता हूं:

pd.set_option('display.max_columns', 500)
pd.set_option('display.max_rows', 500)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.