[Python] 我如何获得熊猫数据框的行数?


Answers

使用len(df) 。 这适用于0.11或更早的熊猫。

__len__()目前(0.12)记录了Returns length of index 。 计时信息的设置方式与root的回答相同:

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)要慢一些,但在大多数用例中这不应该起任何作用。

Question

我试图用Pandas得到dataframe df的行数,这里是我的代码。

方法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给出的答案 ,检查df长度的最佳(最快)方式是调用:

len(df.index)



尝试这个

len(df)

这将返回数据帧的行数。




行数(使用任何):

df.shape[0]
len(df)



......建立在Jan-Philip Gehrcke的回答上。

len(df)len(df.index)df.shape[0]更快的df.shape[0] 。 看代码。 df.shape是@property,它运行一个DataFrame方法,两次调用len

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)

在len(df)引擎盖下,

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)将比len(df)稍快,因为它有一个较少的函数调用,但这总是比df.shape[0]更快。




你可以试试:

total_rows = len(df)



轻松一条线

your_data _frame.shape

会给你简单的行数和列数




除了上面的答案,使用可以使用df.axes来获取具有行和列索引的元组,然后使用len()函数:

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