kaggleで勉強中に以下のコードが出てきました。
誤解を避けるため、ほぼそのまま転記いたします。
変数など説明不足でわかりにくいかもしれませんが、メソッドチェーン全体の構造と、最後のfor文に注目してください。
文法構造についての質問です。
Python
1TARGET = "sales" 2n_days = 7 3pca_df = grid_df 4pca_col = 'id' 5 6LAG_DAYS = [col for col in range(1,n_days+1)] 7format_s = '{}_pca_'+pca_col+str(n_days)+'_{}' 8pca_df = pca_df.assign(**{ 9 format_s.format(col, l): pca_df.groupby([pca_col])[col].transform(lambda x: x.shift(l)) 10 for l in LAG_DAYS 11 for col in [TARGET] 12 })
grid_dfは、コードの過程で出てきたデータフレームです。
assin()使ったメソッドチェーンということは分かるのですが、最後のfor文ふたつがうまく理解できません。
該当のfor文ふたつが、なぜこの位置で構文が成立するのでしょうか。これは特殊な書き方なのでしょうか。
この結果はカラムがいくつか追加されます。コードの自体の意味はなんとなく分かりますし、結果も予測はつきました。しかし、見たことのない書き方なので、プログラムとしての解釈の仕方がわかりません。
回答2件
あなたの回答
tips
プレビュー