python実践データ分析100本ノックの質問
解決したいこと
秀和システム社の表題の本に取り組んでいます。
ノック36のコードで一部不明点があり、お分かりの方がいたらご教示いただけますと幸いです。
該当するソースコード
year_months=list(uselog_months["年月"].unique())
→['201804', '201805', '201806', '201807', '201808', '201809', '201810',
'201811', '201812', '201901', '201902', '201903']
predict_data=pd.DataFrame()
for i in range(6,len(year_months)):
tmp=uselog_months.loc[uselog_months["年月"]==year_months[i]]
tmp.rename(columns={"count":"count_pred"},inplace=True)
for j in range(1,7):
tmp_before=uselog_months.loc[uselog_months["年月"]==year_months[i-j]]
del tmp_before["年月"]
tmp_before.rename(columns={"count":"count_{}".format(j-1)},inplace=True)
tmp=pd.merge(tmp,tmp_before,on="customer_id",how="left")
predict_data=pd.concat([predict_data,tmp],ignore_index=True)
print(predict_data.head())
出力結果
年月 customer_id count_pred count_0 count_1 count_2 count_3 count_4 count_5
0 201810 AS002855 3 7.0 3.0 5.0 5.0 5.0 4.0
1 201810 AS008805 2 2.0 5.0 7.0 8.0 NaN NaN
2 201810 AS009373 5 6.0 6.0 7.0 4.0 4.0 3.0
3 201810 AS015233 7 9.0 11.0 5.0 7.0 7.0 NaN
4 201810 AS015315 4 7.0 3.0 6.0 3.0 3.0 6.0
上記コードの不明点
①4行目の「predict_data=pd.DataFrame()」は空のデータフレームを作成しているのでしょうか。その意図はなぜでしょうか?
②10行目で「 del tmp_before["年月"]」とdeleteをしているのはなぜでしょうか。
③12、13行目でtmpとtmp_beforeをマージしてtmpとし、空のデータフレーム「predict_data」と結合しているということでしょうか?
また、「ignore_index=True」としているのはなぜでしょうか?
細かい点で恐縮ですが、よろしくお願いいたします。
0