मैं पंडों के डेटा फ्रेम में कॉलम की संख्या कैसे प्राप्त करूं?


184

आप प्रोग्राम को पंडों के डेटाफ्रेम में स्तंभों की संख्या को कैसे पुनः प्राप्त करते हैं? मैं कुछ इस तरह की उम्मीद कर रहा था:

df.num_columns

जवाबों:


304

इस तरह:

import pandas as pd
df = pd.DataFrame({"pear": [1,2,3], "apple": [2,3,4], "orange": [3,4,5]})

len(df.columns)
3

35
इसके अलावा df.shape(n_rows, n_columns) के साथ एक ट्यूपल देता है
mkln

3
यदि आप df.shape [1] को उत्तर के रूप में पोस्ट करते हैं, तो मैं +1 करूँगा। यह सुन्न के साथ काम करने का बेहतर तरीका है और एक अलग जवाब देने के योग्य है।
फिल कूपर

किया हुआ। @PhilCooper शायद आप बता सकते हैं कि df.shapeबेहतर क्यों है? मेरा अनुमान है कि यह एक फ़ंक्शन नहीं कहता है, लेकिन सिर्फ मेमोरी से विशेषता पढ़ता है?
18

112

वैकल्पिक:

df.shape[1]

( df.shape[0]पंक्तियों की संख्या है)


2
+1 क्योंकि मुझे शार्प प्रकार के सिंटैक्स के साथ सुन्न और पांडा वस्तुओं को संबोधित करने के लिए प्रोत्साहित करना पसंद है। (df.shape बनाम लेन (df.columns))। सत्य कहा जाए, यदि आप आकार के लिए पंडों के वर्णनकर्ता को देखते हैं, तो यह लेन (df.columns) कहता है, लेकिन संख्यात्मक सारणी और मैट्रिक उन्हें एक विशेषता के रूप में है। वेक्टर किए गए कार्यों के विपरीत नियमित रूप से पायथन सिंटास के साथ सबसे कुशल वेक्टर किए गए ऑपरेशन किए जा सकते हैं और यह लगभग हमेशा गलत है (सुंबा / जीआईटी ऑपरेशन उस आलोचना से छोड़कर)
फिल कूपर

26

यदि डेटाफ्रेम रखने वाले चर को df कहा जाता है, तो:

len(df.columns)

कॉलम की संख्या देता है।

और उन लोगों के लिए जो पंक्तियों की संख्या चाहते हैं:

len(df.index)

टुपल के लिए दोनों पंक्तियों और स्तंभों की संख्या:

df.shape

3
len(df)आप पंक्तियाँ नहीं देंगे?
पादरी कनिंघम

4
@PadraicCunningham पंडों में बहुत सारे शॉर्टकट हैं जिन्हें भूलना आसान है इसलिए मैं उन्हें अनदेखा करना पसंद करता हूं और चीजों को सुलझाने के बजाय मुख्य तर्क का उपयोग करता हूं। आप कभी-कभी प्रसंस्करण गति का त्याग कर सकते हैं, लेकिन मैं अपने कोडिंग समय और कोड की पठनीयता को कुछ सेकंड के प्रसंस्करण समय से अधिक महत्व देता हूं। इस विशेष मामले में: यदि आप सीखते हैं कि पंक्तियों की संख्या की गणना len (df.index) से की जा सकती है, तो अगली बार आपको स्तंभों की संख्या की आवश्यकता होती है जो len करने के लिए स्वाभाविक है (df.columns)।
मल्टीगुडवर्स

0

यह मेरे लिए लेन (सूची (डीएफ)) का काम करता है।


समीक्षा से: नमस्ते, इस पोस्ट में प्रश्न का उत्तर नहीं दिया गया है। कृपया या तो अपने उत्तर को संपादित करें और इसे सुधारें, या इसे टिप्पणी के रूप में पोस्ट करें।
s --unıɐ ɐ qɐp

ऐसा मत करो। यह स्मृति और गति को बर्बाद करते हुए एक नई सूची बनाता है।
jmmcd

0

df.info () फ़ंक्शन आपको नीचे की तरह कुछ परिणाम देगा। यदि आप sep पैरामीटर के बिना पंडों की read_csv विधि का उपयोग कर रहे हैं या "," के साथ sep कर रहे हैं।

raw_data = pd.read_csv("a1:\aa2/aaa3/data.csv")
raw_data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5144 entries, 0 to 5143
Columns: 145 entries, R_fighter to R_age

0

कॉलम नंबर और कॉलम जानकारी प्राप्त करने के लिए कई विकल्प हैं जैसे:
आइए उन्हें जांचें।

local_df = pd.DataFrame (np.random.randint (1,12, size = (2,6)), कॉलम = ['a', 'b', 'c', 'd', 'e', ​​'f ']) 1. local_df.shape [1] -> आकार विशेषता वापसी ट्यूपल के रूप में (पंक्ति और कॉलम) (0,1)।

  1. local_df.info () -> जानकारी विधि डेटा फ़्रेम के बारे में विस्तृत जानकारी लौटाएगी और यह ऐसे कॉलम काउंट, डेटा प्रकार के कॉलम, नॉट वैल्यू काउंट, डेटा फ़्रेम द्वारा मेमोरी उपयोग के बारे में है।

  2. len (local_df.columns) -> कॉलम विशेषता डेटा फ़्रेम कॉलम के इंडेक्स ऑब्जेक्ट को लौटाएगी और लेन फ़ंक्शन कुल उपलब्ध कॉलम लौटाएगा।

  3. local_df.head (0) -> प्रमुख विधि पैरामीटर 0 के साथ df की पहली पंक्ति लौटेगी, जो वास्तव में हेडर के अलावा और कुछ नहीं है।

मान लिया गया कि स्तंभों की संख्या 10. से अधिक नहीं है। लूप फ़न के लिए: li_count = 0 में x के लिए local_df: li_count = li_count + 1 प्रिंट (li_count)

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