07 - Filter Rows

基于我们对数据集的理解,我们还可以应用几个过滤器来删除无效或损坏的数据,这将进一步提高数据质量,确保我们只向模型训练过程提供正确的数据。

我们可以根据以下规则过滤数据:

  • tpep_pickup_datetime - 必须在(2019年2月1日至2020年2月29日)的范围内,即13个月。
  • trip_distance - 必须大于或等于0(仅正数)。
  • tip_amount - 必须大于或等于0(仅正数)。
  • total_amount - 必须大于或等于0(仅正数)。
  • duration - 必须大于或等于1分钟(我们不关心超短的行程)。
  • PULocationID - 必须在(1到263)的范围内。这些是分配的区域。为了简洁起见,让我们在本次研讨会中只使用前10个位置ID(见下图)。

Data Wrangler中没有内置的过滤转换来处理这些各种约束。因此,我们将创建一个自定义转换。

要创建自定义转换,请按照以下步骤操作:

  • 单击转换元素集合旁边的加号,选择"添加转换”。
  • 在TRANSFORMS菜单中单击"+ 添加步骤"橙色按钮。
  • 选择自定义转换。
  • 在下拉菜单中选择"Python (PySpark)",并使用下面提供的代码片段。这段代码将根据指定的条件过滤行。
df = df.filter(df.trip_distance >= 0)
df = df.filter(df.tip_amount >= 0)
df = df.filter(df.total_amount >= 0)
df = df.filter(df.duration >= 1)
df = df.filter((1 <= df.PULocationID) & (df.PULocationID <= 10))
df = df.filter((df.tpep_pickup_datetime >= "2019-02-01 00:00:00") & (df.tpep_pickup_datetime < "2020-03-01 00:00:00"))

  • 选择预览。
  • 选择添加以保存该步骤。

当这个转换应用于数据集时,我们将看到所有先前的步骤,并获得新转换数据集的预览。

单击"返回到数据流"以返回到块图编辑器窗口。