python - मैं पांडस डेटाफ्रेम की पंक्ति गणना कैसे प्राप्त करूं?




pandas dataframe (10)

... जन-फिलिप गेहरके के जवाब पर निर्माण।

कारण len(df) या len(df.index) df.shape[0] से तेज है। कोड को देखो। df.shape एक @property जो डेटाफ्रेम विधि को दो बार कॉल करने के लिए चलाता है।

df.shape??
Type:        property
String form: <property object at 0x1127b33c0>
Source:     
# df.shape.fget
@property
def shape(self):
    """
    Return a tuple representing the dimensionality of the DataFrame.
    """
    return len(self.index), len(self.columns)

और लेन के हुड के नीचे (डीएफ)

df.__len__??
Signature: df.__len__()
Source:   
    def __len__(self):
        """Returns length of info axis, but here we use the index """
        return len(self.index)
File:      ~/miniconda2/lib/python2.7/site-packages/pandas/core/frame.py
Type:      instancemethod

len(df.index) से थोड़ा तेज होगा क्योंकि इसमें एक कम फ़ंक्शन कॉल है, लेकिन यह हमेशा df.shape[0] से तेज़ है

मैं पांडस के साथ डेटाफ्रेम डीएफ की पंक्तियों की संख्या प्राप्त करने की कोशिश कर रहा हूं, और यहां मेरा कोड है।

विधि 1:

total_rows = df.count
print total_rows +1

विधि 2:

total_rows = df['First_columnn_label'].count
print total_rows +1

कोड स्निपेट दोनों मुझे यह त्रुटि देते हैं:

TypeError: असमर्थित ऑपरेंड प्रकार +: 'instancemethod' और 'int' के लिए

मैं क्या गलत कर रहा हूं?

@root द्वारा दिए गए उत्तर के अनुसार डीएफ लंबाई की जांच करने के लिए सबसे अच्छा (सबसे तेज़) तरीका कॉल करना है:

len(df.index)

आप .shape प्रॉपर्टी या सिर्फ len(DataFrame.index) उपयोग कर सकते हैं। हालांकि, उल्लेखनीय प्रदर्शन अंतर हैं ( .shape संपत्ति तेज है):

In [1]: import numpy as np

In [2]: import pandas as pd

In [3]: df = pd.DataFrame(np.arange(12).reshape(4,3))

In [4]: df
Out[4]: 
   0  1  2
0  0  1  2
1  3  4  5
2  6  7  8
3  9  10 11

In [5]: df.shape
Out[5]: (4, 3)

In [6]: timeit df.shape
1000000 loops, best of 3: 1.17 us per loop

In [7]: timeit df[0].count()
10000 loops, best of 3: 56 us per loop

In [8]: len(df.index)
Out[8]: 4

In [9]: timeit len(df.index)
1000000 loops, best of 3: 381 ns per loop

संपादित करें: @Dan Allen टिप्पणियों में उल्लेख किया गया है len(df.index) और df[0].count() नहीं हैं क्योंकि count NaN शामिल नहीं करती है,


इसे इस्तेमाल करे

len(df)

यह डेटा फ्रेम की पंक्ति गणना वापस कर देगा।


उपरोक्त उत्तरों के उपयोग के अलावा पंक्ति और कॉलम इंडेक्स के साथ df.axes प्राप्त करने के लिए df.axes का उपयोग कर सकते हैं और फिर len() फ़ंक्शन का उपयोग कर सकते हैं:

total_rows=len(df.axes[0])
total_cols=len(df.axes[1])

तुम कोशिश कर सकते हो:

total_rows = len(df)

पंक्ति गणना (किसी भी का उपयोग करें):

df.shape[0]
len(df)

मान लीजिए कि डीएफ आपका डेटाफ्रेम है तो:

Count_Row=df.shape[0] #gives number of row count
Count_Col=df.shape[1] #gives number of col count

मैं R पृष्ठभूमि से पांडा में आ गया हूं, और मुझे लगता है कि जब पंक्ति या कॉलम चुनने की बात आती है तो पांडा अधिक जटिल होता है। मुझे थोड़ी देर के लिए इसके साथ कुश्ती करना पड़ा, फिर मुझे इससे निपटने के कुछ तरीके मिले:

कॉलम की संख्या प्राप्त करना:

len(df.columns)  
## Here:
#df is your data.frame
#df.columns return a string, it contains column's titles of the df. 
#Then, "len()" gets the length of it.

पंक्तियों की संख्या प्राप्त करना:

len(df.index) #It's similar.

df.shape डेटा फ्रेम के आकार को df.shape देता है (पंक्तियों की संख्या, df.shape )।

आप बस आसानी से पहुंच सकते हैं। पंक्तियों या नहीं। df.shape[0] या df.shape[1] साथ df.shape[0] cols के, जो tuple के मानों तक पहुंच के समान है।


len(df) प्रयोग करें। यह पांडा 0.11 या शायद पहले भी काम करता है।

__len__() वर्तमान में (0.12) Returns length of index साथ प्रलेखित है। समय की जानकारी, रूट के उत्तर के समान ही सेट करें:

In [7]: timeit len(df.index)
1000000 loops, best of 3: 248 ns per loop

In [8]: timeit len(df)
1000000 loops, best of 3: 573 ns per loop

एक अतिरिक्त फ़ंक्शन कॉल के कारण यह सीधे len(df.index) कॉल करने से थोड़ा धीमा है, लेकिन इसे अधिकांश उपयोग मामलों में कोई भूमिका नहीं निभानी चाहिए।





dataframe