我有一个包含交易对的 Spark 数据框列,我需要使用它来创建一个新列,其中填充了代币的名称。
第一列“bot”包含“Polkadot/USD”,我需要一个名为“coin”的新列,它只包含bot列的子字符串“Polkadot”。所有其他行相同。基本上新列需要删除子字符串“/USD”。
代码如何实现这一点。我是一名加密交易员而不是编码员,所以答案中的编码细节越多越好。谢谢。
注意:笔记本是一个 Python 笔记本
答案 0 :(得分:1)
您可以使用 regexp_replace
将一个子字符串替换为另一个子字符串
df.withColumn('coin', F.regexp_replace(F.col('bot'), '/USD', ''))
示例
# sample dataframe
df3 = spark.createDataFrame([
('BamBridge/USD', ),
('CLV/USD', ),
('ETH/USD', ),
('Polkadot/USD', ),
], ['bot'])
df3 = df3.withColumn('coin', F.regexp_replace(F.col('bot'), '/USD', ''))
df3.show()
+-------------+---------+
| bot| coin|
+-------------+---------+
|BamBridge/USD|BamBridge|
| CLV/USD| CLV|
| ETH/USD| ETH|
| Polkadot/USD| Polkadot|
+-------------+---------+