我有一个数据帧,其中有一列包含特定加密的购买量
df['Amount'] = 200.20356AVAX
我想把这个对象分成两列:
- 1,包含数字-->
df['Quantity'] = 200.20356
- 1包含单词-->
df['Asset'] = AVAX
使用str.extract
:
df = pd.DataFrame({'Amount': ['200.20356AVAX']})
df = df.join(df['Amount'].str.extract('([^A-Z]+)([A-Z]+)')
.rename(columns={0: 'Quantity', 1: 'Asset'}))
# OR, proposed by @mozway (more efficient)
df = df.join(df['Amount'].str.extract('(?P<Quantity>[^A-Z]+)(?P<Asset>[A-Z]+)'))
输出:
>>> df
Amount Quantity Asset
0 200.20356AVAX 200.20356 AVAX
在数据帧中使用正则表达式应用
txt="200.20356AVAX"
pattern=r"d+.*d*"
print(re.findall(pattern,txt))
输出:
['200.20356']