前提・実現したいこと
以下のDataFrameを読み込んで、"is_deleted"列に応じて処理をしたいと考えています。
"is_deleted"は"end_date"が入っている場合に1が入っており、欠損値(NaT)の場合は0となっています。
計算したいことは期間を出すことで、"end_date"が入っていれば、"end_date"-"start_date"、入っていなければ "20190331"-"start_date"を列として追加したいです。If文を使ってやってみたいのですが、以下のようなエラーがでました。
start_date, end_date, is_deleted
XXXX, AAAA, 1
YYYY, NaT, 0
発生している問題・エラーメッセージ
エラーメッセージ The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
該当のソースコード
Python3
1 2if cs_master["is_deleted"] == 1: 3 cs_master["cs_period"] = cs_master["end_date"] - cs_master["start_date"] 4else: 5 cs_master["cs_period"] = "20190331"- cs_master["start_date"]
試したこと
下記サイトのやり方でできそうな気もしますが、せっかくif文を思いついたので、if文で表現するならどうしたらよいがわかるとうれしいです。
https://note.nkmk.me/python-pandas-where-mask/
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/04 19:03