始める無料で始める

日付の計算

この例では、データの頻度が正しいかを確認します。Mortgage データセットは週次データの想定ですが、実際にそうか、レポート日をラグさせてから日付の差分を取って確かめましょう。

ラグ特徴量を作るには window() を作成する必要があることを思い出してください。window() は、あるレコードのグループに対する計算結果に基づいて各レコードに値を返すためのものです。ここでは、ひとつ前の期間の住宅ローン金利を参照します。

この演習はコースの一部です

PySparkで学ぶ特徴量エンジニアリング

コースを見る

演習の手順

  • to_date() を使って mort_df['DATE'] を日付型にキャストします。
  • Window() 関数でウィンドウを作成し、orderBy() を使って mort_df[DATE] で並べ替えます。
  • withColumn() で新しい列 DATE-1 を作成し、lag()DATE 列をラグさせ、over(w) でウィンドウを適用します。
  • datediff() を使って DATEDATE-1 の差分を計算し、列名を Days_Between_Report とします。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

from pyspark.sql.functions import lag, datediff, to_date
from pyspark.sql.window import Window

# Cast data type
mort_df = mort_df.withColumn(____, ____(____))

# Create window
w = ____().____(____)
# Create lag column
mort_df = mort_df.____(____, ____(____, count=1).____(w))

# Calculate difference between date columns
mort_df = mort_df.withColumn(____, ____(____, ____))
# Print results
mort_df.select('Days_Between_Report').distinct().show()
コードを編集して実行