2017-05-23 31 views
0

read_csvを使用して、Yahoo Financeからデータをロードすると、0を含む行が文字列として、時には整数として表示されます。 (データフレームは、文字列値を持つ「0」の任意の行を持っていない場合には) 0を文字列と整数として含むpandasデータフレームからすべての行を削除します。

TypeError: Could not compare ['0'] with block values 

df[(df != '0') & (df != 0)] 

がエラーにつながる:ドロップしようとすると/ブールマスキングあたりのこれらの行を削除します

TypeError: Could not compare [0] with block values 

(フレームに整数値0がない場合)。

+0

それならば、あなたが受け入れる/私の答えをupvoteことができあなたの質問に満足していますか?そうでない場合は、あなたの問題についてさらにコメントできますか? –

答えて

0

次のデータフレームの場合:

df = pd.DataFrame({'int': [0,0,2,3,0,0,1,2,3], 
    'string': ['0','1','2','3','0','0','1','2','0']}) 

    int string 
0 0  0 
1 0  1 
2 2  2 
3 3  3 
4 0  0 
5 0  0 
6 1  1 
7 2  2 
8 3  0 

次のコードは動作するはずです:

df = df[df.string != '0'] 
df = df[df.int != 0] 

これは、次のような出力が得られます。

int string 
2 2  2 
3 3  3 
6 1  1 
7 2  2 
関連する問題