日期运算
在本例中,您将验证数据的频率。按设计,Mortgage 数据集应该是每周数据,但我们要通过对报告日期做滞后,然后计算日期差来确认。
回顾一下,创建滞后特征需要先创建一个 window()。window() 允许基于一组记录进行计算,并为每条记录返回一个值;在这里,就是上一期的按揭利率。
本练习是课程的一部分
使用 PySpark 进行特征工程
练习说明
- 使用
to_date()将mort_df['DATE']转为日期类型。 - 使用
Window()函数创建一个窗口,并用orderBy()按mort_df[DATE]排序。 - 使用
withColumn()创建新列DATE-1,通过lag()对DATE列取滞后,并用over(w)指定窗口。 - 使用
datediff()计算DATE与DATE-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()