Skip to main content
 首页 » 编程设计

python之按索引标准对 Pandas 数据帧切片进行索引

2025年05月04日10think

我经常需要通过比 Pandas DataFrame 中的标准更高/更低的标准在索引中进行一些搜索。 我找到了一种方法来做到这一点,但感觉有点麻烦,或者不知何故不聪明。 这是我目前的方法:

from numpy import linspace 
import pandas as pd 
 
df = pd.DataFrame(linspace(1,5,5),index=linspace(0.1,0.5,5)) 
 
df 
 
     0 
0.1  1 
0.2  2 
0.3  3 
0.4  4 
0.5  5 
 
df[(df.index>0.3) * (df.index <0.5)] 
 
     0 
0.3  3 
0.4  4 

它确实给了我我想要的东西,但如果你有更好的方法,请提出一个更好的方法。

请您参考如下方法:

我会这样做。使用 float-like 索引操作有点不寻常,可能会产生一些意想不到的结果。在 0.13(很快发布)中,它有更多的支持,但仍然与“常规”索引不同。参见 here

In [4]: df = pd.DataFrame({ 'A' : np.linspace(1,5,5), 'B' : np.linspace(0.1,0.5,5) }) 
 
In [5]: df 
Out[5]:  
   A    B 
0  1  0.1 
1  2  0.2 
2  3  0.3 
3  4  0.4 
4  5  0.5 
 
In [6]: df.loc[(df.B>0.3)&(df.B<0.5)] 
Out[6]:  
   A    B 
2  3  0.3 
3  4  0.4