问题描述
我试图拆分一个字符串(尽管当前数字在df列中是一个字符串),但是却很难在任何地方找到答案。我认为使用表达式可能是前进的方向,但还没有完全理解。
示例1)12.540%
示例2)4.555.6%
我想把所有内容都放在第一个'的左边。并且只有一个数字位于第一个'。'右边。
我需要将其应用于所有不同的数字长度,并且上面的陈述是唯一的常数。
示例1)12.5和40%
示例2)4.5和55.6%
谢谢
解决方法
这是字符串操作中的直接问题。任何字符串教程都可以教您基本操作。
- 找到期间的位置。
- 添加1。
- 在该位置分割字符串:通过该索引抓取一个切片;从那里到最后的第二片。
例如,您找到一个位置loc
并向右调整1或2个点:
num,pct = str[:loc],str[loc:]
,
以下功能应执行您想要的操作:
def split_string(num):
s=num.split('.',1)
s1=s[0]+'.'+s[1][0]
s2=s[1][1:]
return (s1,s2)
,
如果要使用正则表达式,请使用此表达式捕获组。
^(\d+\..)(.*)$
如果需要,可以将其与re.search一起使用。
b = re.search(r'^(\d+\..)(.*)$',string)
b.group(1)
b.group(2)
Ex-
val = '12.445.6'
b = re.search(r'^(\d+\..)(.*)$',val)
b.group(1)
Out[24]: '12.4'
b.group(2)
Out[25]: '45.6'