Filtering Pandas Dataframe using OR statement Ask Question

Filtering Pandas Dataframe using OR statement Ask Question

I have a pandas dataframe and I want to filter the whole df based on the value of two columns in the data frame. I want to get back all rows and columns where IBRD or IMF != 0.

alldata_balance = alldata[(alldata[IBRD] !=0) or (alldata[IMF] !=0)]

but this gives me a ValueError

ValueError: シリーズの真理値があいまいです。a.empty、a.bool()、a.item()、a.any()、または a.all() を使用してください。

or ステートメントを正しく使用していないことはわかっていますが、これを実行する方法はありますか?

ベストアンサー1

ドキュメントより:

もう一つの一般的な操作は、ブール ベクトルを使用してデータをフィルター処理することです。演算子は、またはを表す |、およびを表す &、否定を表す ~ です。これらは括弧を使用してグループ化する必要があります。

ブールインデックス

試す:

alldata_balance = alldata[(alldata[IBRD] !=0) | (alldata[IMF] !=0)]

おすすめ記事