私はいくつかの列を持つpandas Datarameを持っています。特定の列の値が特定の値より小さい行のみを印刷したかったのです。それが正常にデータフレームを作成し 論理と演算子を使ってPandasでDataFrameを作成
df[df.marks < 4.5]
が、今私は、その値が一定の範囲内にあるカラムだけを追加したいので、私はこの試みた::だから私はやった
df[(df.marks < 4.5 and df.marks > 4)]
が、それは私に与えているがエラー:
712 raise ValueError("The truth value of a {0} is ambiguous. "
713 "Use a.empty, a.bool(), a.item(), a.any() or a.all()."
--> 714 .format(self.__class__.__name__))
715
716 __bool__ = __nonzero__
ValueError: The truth value of a Series is ambiguous. Use a.empty,
a.bool(), a.item(), a.any() or a.all().
どうすれば解決できますか?そして最初は、すべての行を繰り返して真理値をチェックし、データフレームに行を追加することも考えましたが、そうではないようです。もしそうなら、データフレームの行をどのように追加しますか?
ありがとう、ありがとう –
@Evertには理由がある '&' works and 'and' does not? – ash
@ashこれはNumPy側の設計上の選択です。プレーンなPythonでは、 'と'はリストに作用できます: '[1,2,3]と[]'は 'False'と評価されます。NumPy配列の場合、これは正しく動作しません(警告が表示されます)。混乱を避けるため、NumPyはビット単位のAND演算子 '&'を選択しました。 – Evert