Python如何拆分pandas DataFrame中混合数字和加密资产代码的Amount列
实现方案
你可以使用pandas的str.extract()方法结合正则表达式完成拆分,这是当前场景下最简洁的实现方式:
完整代码示例
import pandas as pd # 仅做测试用,你可以替换成自己的原始DataFrame df = pd.DataFrame({'Amount': ['200.20356AVAX', '1.5BTC', '3245.89ETH', '100USDT']}) # 拆分出两列,捕获组1匹配数值,捕获组2匹配资产代码 df[['Quantity', 'Asset']] = df['Amount'].str.extract(r'^(\d+\.?\d*)([A-Za-z]+)$') # 将数量列转换为浮点型,方便后续做数值计算 df['Quantity'] = pd.to_numeric(df['Quantity'])
说明
- 正则
^(\d+\.?\d*)([A-Za-z]+)$的逻辑:^匹配字符串开头,$匹配字符串结尾,避免异常格式的内容被错误拆分- 第一个捕获组
(\d+\.?\d*):匹配整数、可选小数点、小数部分,对应数量的字符串格式 - 第二个捕获组
([A-Za-z]+):匹配1个以上的英文字母,对应加密资产代码
- 如果你的数据中存在负数(比如卖出记录为
-2.5AVAX),可以把正则修改为r'^(-?\d+\.?\d*)([A-Za-z]+)$'即可兼容负数值
内容的提问来源于stack exchange,提问作者invesTIPS
相关产品推荐
相关产品推荐

