2017-04-04 10 views
0

pythonで列[3]が0でない行を削除したいと思います。Pythonで行を削除したい

#prepare 
from numpy import nan as NA 
from pandas import Series,DataFrame 

data=DataFrame([[1.,6.5,3.,0],[1.,NA,NA,0.],[NA,NA,NA,1],[NA,6.5,3.,7.]]) 
data 
    0 1 2 3 
0 1.0 6.5 3.0 0.0 
1 1.0 NaN NaN 0.0 
2 NaN NaN NaN 1.0 
3 NaN 6.5 3.0 7.0 

私は次のコードを実行しましたが、うまくいきませんでした。

Third=data[3] 
for i in range(len(data.index)): 
if not Third[i] is 0: 
    drop_idx=[i] 
    data.drop(drop_idx,axis=0) 

結果

 0 1 2 3 
1 1.0 NaN NaN 0.0 
2 NaN NaN NaN 1.0 
3 NaN 6.5 3.0 7.0 
    0 1 2 3 
0 1.0 6.5 3.0 0.0 
2 NaN NaN NaN 1.0 
3 NaN 6.5 3.0 7.0 
    0 1 2 3 
0 1.0 6.5 3.0 0.0 
1 1.0 NaN NaN 0.0 
3 NaN 6.5 3.0 7.0 
    0 1 2 3 
0 1.0 6.5 3.0 0.0 
1 1.0 NaN NaN 0.0 
2 NaN NaN NaN 1.0 

私はあなたが間違った教えて、次のresult.Couldを取得する方法を知りたいのですが?

 0 1 2 3 
0 1.0 6.5 3.0 0.0 
1 1.0 NaN NaN 0.0 

答えて

0

これは、ジョブ行います:

import pandas as pd 
data=pd.DataFrame([[1.,6.5,3.,0],[1.,None,None,0.],[None,None,None,1],[None,6.5,3.,7.]]) 
data.drop(data[data[3]!=0].index,inplace=True) 
:次に data

import pandas as pd 
data=pd.DataFrame([[1.,6.5,3.,0],[1.,None,None,0.],[None,None,None,1],[None,6.5,3.,7.]]) 
data=data[data[3]==0] 

は、次のように、また、そのインプレース行うことができ

0 1 2 3 
0 1.0 6.5 3.0 0.0 
1 1.0 NaN NaN 0.0 

です

関連する問題