关于python里面获取pandas的dataframe的长度 len() 和 shape[0]的速度对比

关于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是不返回列的数量的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值