実践データ分析100本ノック(第4章-顧客の行動を予測する-37)

2020年12月21日

実践データ分析100本ノック(第4章-顧客の行動を予測する-37)

コード


#--ノック37------------------------------
# 使用開始日と現在日を比較し利用期間を算出
# %%
# customerのstart_dateを結合
predict_data = pd.merge(predict_data, customer[["customer_id", "start_date"]], on="customer_id", how="left")
predict_data.head()

# フォーマットを変換
predict_data["now_date"] = pd.to_datetime(predict_data["年月"], format="%Y%m")
# 利用開始日の型を変換
predict_data["start_date"] = pd.to_datetime(predict_data["start_date"])
predict_data.head()
# # ライブラリインポート
from dateutil.relativedelta import relativedelta
predict_data["period"] = None
for i in range(len(predict_data)):
    # 退会日 - 利用開始日 = 利用期間
    delta = relativedelta(predict_data["now_date"][i], predict_data["start_date"][i])
    # 利用期間を月に換算
    predict_data["period"][i] = delta.years*12 + delta.months
print(predict_data.head())
#        年月 customer_id  count_pred  count_0  count_1  count_2  count_3  \
# 0  201810    AS002855           3      7.0      3.0      5.0      5.0   
# 1  201810    AS009373           5      6.0      6.0      7.0      4.0   
# 2  201810    AS015315           4      7.0      3.0      6.0      3.0   
# 3  201810    AS015739           5      6.0      5.0      8.0      6.0   
# 4  201810    AS019860           7      5.0      7.0      4.0      6.0   

#    count_4  count_5 start_date   now_date period  
# 0      5.0      4.0 2016-11-01 2018-10-01     23  
# 1      4.0      3.0 2015-11-01 2018-10-01     35  
# 2      3.0      6.0 2015-07-01 2018-10-01     39  
# 3      5.0      7.0 2017-06-01 2018-10-01     16  
# 4      8.0      6.0 2017-10-01 2018-10-01     12  

2020年12月21日