如何获取panda数据帧df的行数?


当前回答

找出数据帧中行数的另一种方法是pandas.Index.size,我认为这是最可读的变体。

请注意,正如我对公认答案的评论,

疑似pandas.Index.size实际上比len(df.Index)更快,但在我的计算机上告诉的是相反的情况(每个循环大约慢150 ns)。

其他回答

我不确定这是否可行(数据可以省略),但这可能可行:

*dataframe name*.tails(1)

然后使用这个,您可以通过运行代码片段并查看提供给您的行号来找到行数。

假设df是您的数据帧,那么:

count_row = df.shape[0]  # Gives number of rows
count_col = df.shape[1]  # Gives number of columns

或者更简洁地说,

r, c = df.shape

使用len(df)或len(df.index)时,可能会遇到以下错误:

----> 4 df['id'] = np.arange(len(df.index)
TypeError: 'int' object is not callable

解决方案:

lengh = df.shape[0]

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

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

对于数据帧df,可以使用以下任一项:

长度(df.索引)df.形状[0]df[df.columns[0]].count()(==第一列中非NaN值的数量)


再现绘图的代码:

import numpy as np
import pandas as pd
import perfplot

perfplot.save(
    "out.png",
    setup=lambda n: pd.DataFrame(np.arange(n * 3).reshape(n, 3)),
    n_range=[2**k for k in range(25)],
    kernels=[
        lambda df: len(df.index),
        lambda df: df.shape[0],
        lambda df: df[df.columns[0]].count(),
    ],
    labels=["len(df.index)", "df.shape[0]", "df[df.columns[0]].count()"],
    xlabel="Number of rows",
)