2024-04-25 06:25:46 发布
网友
在数据帧切片中是否有一种只获取索引的方法? 换句话说,有没有更好的方法来编写以下代码:
你知道吗测向位置[df['A']>;5].索引
谢谢!你知道吗
是的,最好是只过滤索引值,而不是所有数据帧,然后选择索引:
#filter index df.index[df['A'] >5] #filter DataFrame df[df['A'] >5].index
不同之处也在于性能:
np.random.seed(1245) df = pd.DataFrame({'A':np.random.randint(10, size=1000)}) print (df) In [40]: %timeit df.index[df['A'] >5] 208 µs ± 11.8 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) In [41]: %timeit df[df['A'] >5].index 428 µs ± 6.42 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) In [42]: %timeit df.loc[df['A'] >5].index 466 µs ± 40.1 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
如果性能很重要,请使用numpy-将索引和列的值按^{}转换为numpy数组:
numpy
In [43]: %timeit df.index.values[df['A'] >5] 157 µs ± 8.71 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each) In [44]: %timeit df.index.values[df['A'].values >5] 8.91 µs ± 196 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
是的,最好是只过滤索引值,而不是所有数据帧,然后选择索引:
不同之处也在于性能:
如果性能很重要,请使用} 转换为numpy数组:
numpy
-将索引和列的值按^{相关问题 更多 >
编程相关推荐