下記のようなdfに新しい行を追加したいと思っています。
やりたいことはresultという名前のwinという列の値をtotalという列の値で割り、新規列のwin%に収納するという作業です。
また0が多くあるのでzerodivisionerrorにならないようtotal==0の時は0と記入する方法を取りたいと思っています。
しかし私が書いた下記のコードだと
The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
が出てしまいます。
もはや何が原因でエラーに引っかかっているのか分かりません。
result["win%"]= [0 if (result["total"]==0) else (result["win"]/result["total"])]
npで対応できないかと思い下記のコードも試してみたのですがこちらはzerodivisionerrorが出てしまいました。
result["win%"] = np.where(result["total"]==0, 0, result["win"]/result["total"])
どうかエラーに引っかからず新しい列を追加できる方法をお教えいただけますでしょうか?
回答のほうでresult["win%"] = result["win"]/result["total"]と記入すれば出来ると仰ってくださった方がいらっしゃりそちらの方のコードを試させていただいたところ、その方の書いてくださいましたdfをしようしたコードでは確かにzerodivisionerrorが出なかったのですが、わたくしのコードで試したところやはりエラーが出てしまうようでした。
先ほどwhereを使う方法をお教えいただいたので早速試させていただいたのですがやはりzero...が出てしまいます。タイプをintやfloatに変更もしてみたのですがやはり機能しませんでした。もしかすると根本的に別の問題がある場合はありますでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/18 02:42