擅长:python、mysql、java
<p>按<code>package_scan_code == '03'</code>筛选数据帧,然后与原始数据帧连接:</p>
<pre><code>(df.filter(df.package_scan_code == '03')
.selectExpr('package_id', 'location as origin')
.join(df, ['package_id'], how='right')
.show())
+ + + + -+
|package_id| origin| location|package_scan_code|
+ + + + -+
| 123|LosAngeles| Denver| 05|
| 123|LosAngeles| LosAngeles| 03|
| 123|LosAngeles| Dallas| 09|
| 123|LosAngeles| Vail| 02|
| 456| Memphis|Jacksonville| 05|
| 456| Memphis| Nashville| 09|
| 456| Memphis| Memphis| 03|
+ + + + -+
</code></pre>
<p>注意:这假设您最多有一个<code>package_scan_code</code>等于<code>03</code>,否则逻辑将不正确,您需要重新考虑如何定义<code>origin</code>。在</p>