結論
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
のエラーの原因として、
複数条件なのにそれぞれを()
で括っていない、& | ^
などのbit演算ではなくand or not
などと書いているなどが検索で出てきますが1 2
isin
をin
にしてしまっていた時も同様のエラーメッセージがおきるので気をつけましょう。
原因となったコード
tmp__ = transactions[(transactions["year"] == "2014" ) & (transactions ["month"] in ["06","07","08"]))]
訂正したコード
tmp__ = transactions[(transactions["year"] == "2014" ) & (transactions["month"].isin( ["06","07","08"]))]
-
nkmkさんのブログ記事にこのエラーが起きるケースとその理由(PandasやNumby ndarrayでは曖昧性解消のため、bitwise(&,|,~)を使うとelement-wiseなoperator(and,or,norなど) にoverride されるようになっている)が書かれています https://note.nkmk.me/python-numpy-pandas-value-error-ambiguous/ ↩
-
stackoverflowの記事ではどのように曖昧であるかをもう少し詳しく説明してあります。https://stackoverflow.com/questions/36921951/truth-value-of-a-series-is-ambiguous-use-a-empty-a-bool-a-item-a-any-o ↩