ValueError ambiguous truth Python Origin: Application & API Last updated 14 Oct 2026

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

A pandas Series/NumPy array was used where Python expects a single True/False (if, and, or).

Exact message you may see The truth value of a Series is ambiguousThe truth value of an array with more than one element is ambiguous
Seen on: Python

Meaning

Comparisons on Series produce Series of booleans. Combine conditions with & and | (with parentheses), not and/or, and use .any()/.all() to collapse.

Common causes

  • Using and/or between Series conditions
  • if df["x"] > 0: on a whole column
  • Missing parentheses with & and |

⚡ Quick fix

  1. Use (df.a > 0) & (df.b < 5)
  2. Use .any() / .all() / .empty for if-checks
  3. Use np.where for element-wise choices

Detailed fix by platform

Python

  1. mask = (df["age"] >= 18) & (df["country"] == "IN")

How to diagnose

  1. Expression — Which if/and/or uses a Series?
  2. Intent — Element-wise mask, or any/all of the column?

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

Where this error sits

Origin: Application & API. Errors that are often confused with or caused by this one (click to open):

AttributeError — AttributeError: 'X' object has no attribute 'y' (Python)AttributeErrorbroadcast error — ValueError: operands could not be broadcast together with shapes (3,) (4,) (Python)broadcast errorConnectionRefusedError — ConnectionRefusedError: [Errno 111] Connection refused (Python)ConnectionRefusedErrorEvent loop is closed — RuntimeError: Event loop is closed (Python)Event loop is closednever awaited — RuntimeWarning: coroutine 'fetch' was never awaited (Python)never awaitednumpy alias removed — AttributeError: module 'numpy' has no attribute 'float' (Python)numpy alias removedSettingWithCopyWarning — SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame (Python)SettingWithCopyWarningValueErro…

Explore the map of this error Full error map →

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.

💬 What worked for others

No tips yet — did something else fix this for you?

Share what worked for you

Tips are checked by an editor before they appear. Links are removed.