我正在尝试使用Pandas获取数据帧df的行数,下面是我的代码。
方法1:
total_rows = df.count
print total_rows + 1
方法二:
total_rows = df['First_column_label'].count
print total_rows + 1
这两个代码片段都给出了这个错误:
TypeError:+:'instancemethod‘和'int’不支持的操作数类型
我做错了什么?
发布于 2013-04-11 16:24:30
对于数据帧df
,可以使用以下任一选项:
len(df.index)
df.shape[0]
df[df.columns[0]].count()
(== number of non-NaN values in first column)
重现该图的代码:
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",
)
发布于 2016-02-20 21:30:05
假设df
是你的数据帧,那么:
count_row = df.shape[0] # Gives number of rows
count_col = df.shape[1] # Gives number of columns
或者,更简洁地说,
r, c = df.shape
发布于 2013-08-19 23:02:46
使用len(df)
:-)。
__len__()
使用"Returns length of index“进行记录。
计时信息,设置方式与root's answer相同
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)
非常具有可读性。
https://stackoverflow.com/questions/15943769
复制相似问题