我经常需要在索引中通过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
它确实给了我我想要的东西,但如果你有一个更好的方法,请提出建议。
答案 0 :(得分:1)
我会这样做。使用类似浮动的索引操作有点不寻常,可能会产生一些意想不到的结果。在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