关于python里面获取pandas的dataframe的长度 len() 和 shape[0]的速度对比:
先直接给出结论 len(df) 是最快的
本人由于工作需要,平时用的语言是python,代码里面一直有极大量的时候要涉及到需要访问一个pd的df的长度的时候,这个时候我认知里面就两个办法
len(df)
df.shape[0]
两个都能返回这个pd的df有多少行,但是一直没去仔细研究哪个方法更好,一直都是随手用。今天刚好有空仔细研究一下
测试代码如下,我还加了一种,是df.empty 这个代码是只能返回 df是否空的,代替代码比如 if len(df)==0 这样。
每次运行为了避免内存占用带来的极小影响,我都是单独运行一次,不是一起运行。大家也可以试一下在自己电脑运行,不同电脑不同系统不同cpu不同内存,出来的速度跟我应该不会一样。
import pandas as pd
df = pd.DataFrame({'A': range(10**6)})
%timeit -n 500 -r 5 len(df)
218 ns ± 10.1 ns per loop (mean ± std. dev. of 5 runs, 500 loops each)
import pandas as pd
df = pd.DataFrame({'A': range(10**6)})
%timeit -n 500 -r 5 df.shape[0]
328 ns ± 19.7 ns per loop (mean ± std. dev. of 5 runs, 500 loops each)
import pandas as pd
df = pd.DataFrame({'A': range(10**6)})
%timeit -n 500 -r 5 df.empty
1.01 μs ± 73.9 ns per loop (mean ± std. dev. of 5 runs, 500 loops each)
这里需要先学下单位换算
1 μs微秒 == 1,000 纳秒 ns 所以ns比μs更小,
综合下来 len(df) 还是最强的。不过如果要知道列的数量 就要用shape了,len是不返回列的数量的