You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Pandas中如何基于+-符号将单列数据拆分为两个新列

实现方法

核心逻辑是针对你给出的样本,每个open列的字符串长度均为偶数,按长度对半切割即可,也可以用正则匹配适配后续可能的规则扩展:


方法1:直接对半切片(性能最高,适配现有所有样本)

import pandas as pd
df = pd.DataFrame({'open': ['-2.5+2.5', '+3-3', '-1.5+1.5', '-1+1', '+3.5-3.5', 'PKPK']})

# 计算每个字符串的半长直接切片
half_len = df['open'].str.len() // 2
df['open1'] = df.apply(lambda x: x['open'][:half_len[x.name]], axis=1)
df['open2'] = df.apply(lambda x: x['open'][half_len[x.name]:], axis=1)

# 提取目标列
result = df[['open1', 'open2']]

运行后result完全匹配你需要的输出格式。


方法2:正则匹配(适合规则扩展场景)

如果后续open列的格式可能调整,可以用正则匹配指定格式的片段:

# 正则规则:匹配带正负号的数值(支持小数)或者PK字符串,分为两组
extract_pat = r'([+-]?\d*\.?\d+|PK)([+-]?\d*\.?\d+|PK)'
df[['open1', 'open2']] = df['open'].str.extract(extract_pat)
result = df[['open1', 'open2']]

内容的提问来源于stack exchange,提问作者Canovice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 13:36:04