2016-01-29 299 views
2

的最大值我有像這樣一個數據幀:降大熊貓據幀行基於列

 p_rel  y_BET sq_resid 
1 0.069370 41.184996 0.292942 
2 0.116405 43.101090 0.010953 
3 0.173409 44.727748 0.036832 
4 0.225629 46.681293 0.540616 
5 0.250682 46.980616 0.128191 
6 0.294650 47.446113 0.132367 
7 0.322530 48.078038 0.235047 

如何擺脫第四行的,因爲它有sq_resid的最大價值?注意:最大值將從數據集更改爲數據集,因此只刪除第4行是不夠的。

我已經嘗試了幾件事情,例如我可以刪除最大值,它保留下面的數據框但不能刪除整行。

p_rel  y_BET sq_resid 
1 0.069370 41.184996 0.292942 
2 0.116405 43.101090 0.010953 
3 0.173409 44.727748 0.036832 
4 0.225629 46.681293 Nan 
5 0.250682 46.980616 0.128191 
6 0.294650 47.446113 0.132367 
7 0.322530 48.078038 0.235047 

回答

9

你可以只過濾,像這樣的DF:

In [255]: 
df.loc[df['sq_resid']!=df['sq_resid'].max()] 

Out[255]: 
     p_rel  y_BET sq_resid 
1 0.069370 41.184996 0.292942 
2 0.116405 43.101090 0.010953 
3 0.173409 44.727748 0.036832 
5 0.250682 46.980616 0.128191 
6 0.294650 47.446113 0.132367 

drop使用idxmax這將返回最大值的標籤行:

In [257]: 
df.drop(df['sq_resid'].idxmax()) 

Out[257]: 
     p_rel  y_BET sq_resid 
1 0.069370 41.184996 0.292942 
2 0.116405 43.101090 0.010953 
3 0.173409 44.727748 0.036832 
5 0.250682 46.980616 0.128191 
6 0.294650 47.446113 0.132367 
7 0.322530 48.078038 0.235047