鑒于以下資料框:
Row|Address |Contact |
--- ------------------------------------------------------------------------ -------------
|1 |J. Borja cor. Guillermo St., Cagayan de Oro City 08822 722-922 / 726-667|null |
|2 |Cruz Taal cor. Apolinar Velez St.,Cagayan de Oro City 08822 725-301 |null |
|3 |R.N. Abejuela St., Cagayan de Oro City |08822 727-864|
我如何將其轉換為:
Row|Address |Contact |
--- ------------------------------------------------------------------------ -------------
|1 |J. Borja cor. Guillermo St., Cagayan de Oro City | 08822 722-922 / 726-667 |
|2 |Cruz Taal cor. Apolinar Velez St.,Cagayan de Oro City | 08822 725-301 |
|3 |R.N. Abejuela St., Cagayan de Oro City | 08822 727-864 |
uj5u.com熱心網友回復:
先用正則運算式從 中提取,然后Contact_tmp從 中Address擦除Address,最后用coalesce函式合并Contact和Contact_tmp。
df = df.withColumn('Contact_tmp', F.regexp_extract('Address', '\\d \\s \\d -\\d \\s*/*\\s*\\d*-*\\d*', 0)).select(
'Row',
F.expr('replace(Address, Contact_tmp, "")').alias('Address'),
F.coalesce('Contact', 'Contact_tmp').alias('Contact')
)
df.show(truncate=False)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/397695.html
