如何添加列(脚本)转换以查询另一列的内容

时间:2018-07-26 20:10:54

标签: azure-machine-learning-workbench

我正在寻找一个简单的表达式,如果D列中包含“ SomeContent”,则在E列中放置“ 1”。我正在Azure ML Workbench中通过其“添加列”(脚本)函数进行此操作。他们提供了一些示例。

row.ColumnA + row.ColumnB is the same as row["ColumnA"] + row["ColumnB"] 
1 if row.ColumnA < 4 else 2 
datetime.datetime.now() 
float(row.ColumnA) / float(row.ColumnB - 1) 
'Bad' if pd.isnull(row.ColumnA) else 'Good'

我可以在1行脚本中使用任何想法吗?谢谢

1 个答案:

答案 0 :(得分:0)

在没有真正知道要在“ D”列中查找什么的情况下,我仍然认为您可以在他们提供的示例中找到所需的所有信息。

该脚本由一个函数包装,该函数收集您计算/提供的值并将其放在新列中。每个行分别进行此分配。该值可以是静态值,可以是任意计算,也可以取决于特定行的其他列中的值。

在“提示”部分,您可以看到从其他行获取值的两种不同方式:

Bar ToNonLastBar(Foo foo) {...}
Bar ToLastBar(Foo foo) {...}

对于您而言,您可以通过The current row is referenced using 'row' and then a column qualifier, for example row.colname or row['colname']. row.D

获取列“ D”的值

此后,您所需要做的就是提出特定的逻辑,以确保该特定行的“ D”列中是否包含“ SomeContent”。在您的情况下,“ 1行脚本”如下所示:

row['D']

如果您需要逻辑方面的帮助,则需要提供更具体的示例。

您可以在Azure机器学习文档中阅读更多信息:

Sample of custom column transforms (Python)

Data Preparations Python extensions

希望这会有所帮助