如何获取panda数据帧df的行数?
当前回答
找出数据帧中行数的另一种方法是pandas.Index.size,我认为这是最可读的变体。
请注意,正如我对公认答案的评论,
疑似pandas.Index.size实际上比len(df.Index)更快,但在我的计算机上告诉的是相反的情况(每个循环大约慢150 ns)。
其他回答
您也可以这样做:
假设df是您的数据帧。然后df.shape为您提供数据帧的形状,即(行,列)
因此,分配以下命令以获得所需的
row = df.shape[0], col = df.shape[1]
使用len(df):-)。
__len__()记录了“返回索引长度”。
计时信息,设置方式与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)慢一点。但在大多数情况下,这并不重要。我发现len(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.
我不确定这是否可行(数据可以省略),但这可能可行:
*dataframe name*.tails(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",
)
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用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中获取迭代器中的元素个数
- 解析日期字符串并更改格式