[解決済み] シリーズの真偽値が曖昧である。a.empty, a.bool(), a.item(), a.any(), a.all() のいずれかを使用します。
質問
結果データフレームをフィルタリングするのに問題があります。
or
という条件があります。結果を
df
を抽出し、すべてのカラム
var
の値が 0.25 以上、-0.25 未満であることを示す。
このロジックは曖昧な真理値を与えますが、このフィルタリングを2つの別々のオペレーションに分割すると動作します。ここで何が起こっているのでしょうか?
a.empty(), a.bool(), a.item(),a.any() or a.all()
.
result = result[(result['var'] > 0.25) or (result['var'] < -0.25)]
解決方法は?
その
or
と
and
pythonステートメントでは
truth
-値を指定します。については
pandas
はあいまいな表現なので、ビットワイズで表現する必要があります。
|
(または)または
&
(and)操作を行う。
result = result[(result['var']>0.25) | (result['var']<-0.25)]
これらは,この種のデータ構造に対してオーバーロードされ,要素ごとの
or
(または
and
).
この文章にもう少し説明を加えておきます。
を取得しようとすると例外が発生します。
bool
の
pandas.Series
:
>>> import pandas as pd
>>> x = pd.Series([1])
>>> bool(x)
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
当たったのは、オペレーターがいる場所
暗黙のうちに
はオペランドを変換して
bool
(あなたが使用した
or
でも発生します。
and
,
if
と
while
):
>>> x or x
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
>>> x and x
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
>>> if x:
... print('fun')
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
>>> while x:
... print('fun')
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
これらの4つのステートメントに加えて、いくつかのPython関数が、いくつかの
bool
の呼び出し(例えば
any
,
all
,
filter
の場合、通常は問題ありません。
pandas.Series
が、念のため、これらについて触れておきたいと思います。
あなたの場合、例外はあまり役に立ちません。
右の代替案
. について
and
と
or
を使うことができます(要素ごとの比較が必要な場合)。
-
>>> import numpy as np >>> np.logical_or(x, y)
または単に
|
演算子を使用します。>>> x | y
-
>>> np.logical_and(x, y)
または単に
&
演算子を使用します。>>> x & y
演算子を使用する場合は、括弧を正しく設定する必要があります。 演算子の優先順位 .
があります。
いくつかの論理的なnumpy関数
どの
は
に働きかける。
pandas.Series
.
を行う際に遭遇した場合は、Exceptionに記載されている代替案が適しています。
if
または
while
. それぞれについて簡単に説明します。
-
あなたのSeriesが 空 :
>>> x = pd.Series([]) >>> x.empty True >>> x = pd.Series([1]) >>> x.empty False
Python は通常
len
コンテナ(例えばlist
,tuple
を真理値として解釈します。つまり、pythonのようなチェックをしたいのであればif x.size
またはif not x.empty
ではなくif x
. -
もし、あなたの
Series
には 一つしかない ブール値である。>>> x = pd.Series([100]) >>> (x > 50).bool() True >>> (x < 50).bool() False
-
を確認したい場合は 最初の、そして唯一の項目 のシリーズ(例えば
.bool()
ただし、ブーリアンでないコンテンツでも動作します)。>>> x = pd.Series([100]) >>> x.item() 100
-
を確認したい場合 すべて または 任意の の項目が0でない、空でない、または偽でないこと。
>>> x = pd.Series([0, 1, 2]) >>> x.all() # because one element is zero False >>> x.any() # because one (or more) elements are non-zero True
関連
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み] データ型が理解できない
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
PythonによるExcelファイルの一括操作の説明
-
Pythonの@decoratorsについてまとめてみました。
-
Python Pillow Image.save jpg画像圧縮問題
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件