2016-12-18 38 views
1

我擁有電子數據幀是這樣的:大熊貓的Python:查詢,其中對數據幀

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()) 

後,我得到了新的數據幀,沒有楠值,如:

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

好吧。數字32出現在第一位置。如果我問:在第一次出現之後,數據幀中缺失32的數字是多少?答案應該是:5次。你如何使用熊貓做到這一點?

我試圖做:

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

,但它不工作

從本質上說:怎麼,你可以在其上執行查詢的數據幀,執行額外的命令不保存(例如「csv」)新的數據框並對其執行操作?

+0

請格式化Python代碼爲Python代碼。 – DyZ

回答

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 
+0

謝謝。它的工作 – Andreas

+0

在你的例子中,len(x) - np.argwhere(x.I == 32).min() - 1它應該等於3 – Andreas