[英]How to quickly check if a value exists in pandas DataFrame index?
更新dataframe
,应检查该值是否存在于dataframe
索引中,但是我想知道哪种方法更快 ,谢谢!
1. if value in set(dataframe.index) 2. if value in dataframe.index
您需要第二个解决方案:
value in dataframe.index
样品:
df = pd.DataFrame({'A':range(100000)})
df.index = df.index.astype(np.int64)
print (df.index)
In [64]: %timeit (5000 in df.index)
The slowest run took 37.76 times longer than the fastest. This could mean that an intermediate result is being cached.
1000000 loops, best of 3: 523 ns per loop
In [65]: %timeit (5000 in df.index.values)
The slowest run took 5.24 times longer than the fastest. This could mean that an intermediate result is being cached.
10000 loops, best of 3: 76.7 µs per loop
In [66]: %timeit (5000 in set(df.index))
100 loops, best of 3: 7.34 ms per loop
Timimgs获取更多数据:
df = pd.DataFrame({'A':range(100000)})
df.index = df.index.astype(np.int64)
np.random.seed(2017)
a = np.random.randint(100000, size=1000)
In [73]: %timeit ([i in df.index for i in a])
The slowest run took 4.36 times longer than the fastest. This could mean that an intermediate result is being cached.
1000 loops, best of 3: 636 µs per loop
In [74]: %timeit ([i in df.index.values for i in a])
1 loop, best of 3: 208 ms per loop
In [75]: %timeit ([i in set(df.index) for i in a])
1 loop, best of 3: 7.44 s per loop
可能是另一种方式。
a = time.time()
如果值在set(dataframe.index)中
b = time.time()
timetaken = ba
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.