前提・実現したいこと
SettingWithCopyWarningを解決したいです
発生している問題・エラーメッセージ
python
1 2from dateutil.relativedelta import relativedelta 3customer_join["caluc_date"] = customer_join["end_date"].copy() 4customer_join["caluc_date"] = customer_join["caluc_date"].fillna(pd.to_datetime("20190430")) 5customer_join["membership_period"] = 0 6for i in range(len(customer_join)): 7 delta = relativedelta(customer_join["caluc_date"].iloc[i], customer_join["start_date"].iloc[i]) 8 customer_join["membership_period"].iloc[i] = delta.years*12 +delta.months 9customer_join.head()
上記でも、一応動作は問題ないのですが、下記のエラーがどうしても解決できずに困っています。。
SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame```
試したこと
.copy()をcustomer_join["membership_period"].copy().iloc[i] = delta.years*12 +delta.months
customer_join.head()に付けたのですが、出力時に求める値が全て0になってしましました。
SettingWithCopyWarningについて色々参考文献などを調べたのですが、原因をうまく捉えられずここで質問させていただきました。
初めて投稿させていただくので、色々不足な点もありますが、解説していただける方がいらっしゃれば何卒よろしくお願いいたします。
あなたの回答
tips
プレビュー