如何获取panda数据帧df的行数?
当前回答
我从R背景来到Pandas,我发现Pandas在选择行或列时更加复杂。
我不得不与它搏斗一段时间,然后我找到了一些应对方法:
获取列数:
len(df.columns)
## Here:
# df is your data.frame
# df.columns returns a string. It contains column's titles of the df.
# Then, "len()" gets the length of it.
获取行数:
len(df.index) # It's similar.
其他回答
对于数据帧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",
)
假设df是您的数据帧,那么:
count_row = df.shape[0] # Gives number of rows
count_col = df.shape[1] # Gives number of columns
或者更简洁地说,
r, c = df.shape
TL;DR使用长度(df)
len()返回列表对象的项数(长度)(也适用于字典、字符串、元组或范围对象)。因此,要获取DataFrame的行计数,只需使用len(df)。有关len函数的更多信息,请参见官方页面。
或者,您可以分别使用df.index和df.columns访问所有行和所有列len(df.index)将给出行数,len(df.columns)将给出列数。
或者,您可以使用df.shape,它一起返回行数和列数(作为元组),在这里您可以使用索引访问每个项。如果要访问行数,请仅使用df.shape[0]。对于列数,请只使用:df.shape[1]。
…建立在Jan Philip Gehrcke的答案之上。
len(df)或len(df.index)比df.shape[0]更快的原因是:
看看代码。df.shape是一个@属性,它运行两次调用len的DataFrame方法。
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]快
我从R背景来到Pandas,我发现Pandas在选择行或列时更加复杂。
我不得不与它搏斗一段时间,然后我找到了一些应对方法:
获取列数:
len(df.columns)
## Here:
# df is your data.frame
# df.columns returns a string. It contains column's titles of the df.
# Then, "len()" gets the length of it.
获取行数:
len(df.index) # It's similar.
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 确定每列中NA值的个数
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 如何结合多个条件子集数据帧使用“或”?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式