Pandas Python:查询和数据帧的位置

时间:2016-12-18 20:04:42

标签: python pandas dataframe

我有这样的DataFrame:

RTD  I   
BA  32    
CA  25    
BA  22
CA  45    
NA  69   
BA  75   
BA  28   
VE  30   
BA  13   
BA  11   

首先:

Test= (df.where(df.query('I>0 & RTD =="BA"')).dropna())

获得新数据帧后,没有Nan值,如下所示:

RTD  I
BA  32
BA  22
BA  75   
BA  28
BA  13
BA  11  

好。数字32存在于第一位置。如果我问:在第一次出现之后,数据帧中缺少数字32多长时间?答案应该是:5次。你怎么用pandas做什么?

我试过这样做:

len(df.loc[Test.last_valid_index():]) - 1

但它不起作用

本质上:如何在执行查询的数据框上执行附加命令,而不保存(例如" csv")新数据帧并对其执行操作?

1 个答案:

答案 0 :(得分:0)

IIUC你可以这样做:

In [76]: x
Out[76]:
  RTD   I
0  BA  32
2  BA  22
5  BA  75
6  BA  28
8  BA  32   # <-- NOTE: i have intentionally set it to `32`
9  BA  11

In [77]: len(x) - np.argwhere(x.I==32).max() - 1
Out[77]: 1

In [78]: len(x) - np.argwhere(x.I==32).min() - 1
Out[78]: 5