Python 如果有数字,如何拆分字符串?

Python 如果有数字,如何拆分字符串?,python,pandas,Python,Pandas,我在panda数据框中有一组字符串,我想分割这些字符串,只保留文本 以下是一个字符串的示例: '消除渲染阻塞资源0.46秒以下一代格式提供图像0.45秒减少服务器响应时间(TTFB)0.22秒删除未使用的CSS 0.15秒' 以下是我希望在不同专栏中看到的内容: [“消除渲染阻塞资源”,“以下一代格式提供图像”,“减少服务器响应时间(TTFB)”,“删除未使用的CSS'] 我曾想过对“.”使用.str.split命令,再加上右边的3个字符和左边的一个字符……但老实说,我不知道从哪里开始 感谢您的

我在panda数据框中有一组字符串,我想分割这些字符串,只保留文本

以下是一个字符串的示例: '消除渲染阻塞资源0.46秒以下一代格式提供图像0.45秒减少服务器响应时间(TTFB)0.22秒删除未使用的CSS 0.15秒'

以下是我希望在不同专栏中看到的内容: [“消除渲染阻塞资源”,“以下一代格式提供图像”,“减少服务器响应时间(TTFB)”,“删除未使用的CSS']

我曾想过对“.”使用.str.split命令,再加上右边的3个字符和左边的一个字符……但老实说,我不知道从哪里开始


感谢您的帮助

将正则表达式与
re.split()一起使用

\d\。\d+
将匹配任何字符串,如
0.15s
、0.22s等。 例如:

s = 'Eliminate render-blocking resources 0.46s Serve images in next-gen formats 0.45s Reduce server response times (TTFB) 0.22s Remove unused CSS 0.15s'
re.split('\d\.\d+s', s)
['Eliminate render-blocking resources ', ' Serve images in next-gen formats ', ' Reduce server response times (TTFB) ', ' Remove unused CSS ', '']

在此之后,您可以使用删除尾随空格和空字符串。

我们可以将
Series.str.split
与regex结合使用。我们还传递参数
expand=True
,因此它会为每个拆分返回一个新列:

df['Col'].str.split(r'[0-9]{1}\.[0-9]{2}s', expand=True)
输出

                                      0                                   1                                      2                    3 4
0  Eliminate render-blocking resources    Serve images in next-gen formats    Reduce server response times (TTFB)    Remove unused CSS   

一个小技巧是使用re.sub将所有数字转换为数字0,然后使用str.split('0'),这使我向前迈进了一些步骤,我现在正在尝试在数据帧中这样做。我发现我可以使用.compile,所以我做了以下工作(opportunities[1]是数据框中的列,其中所有内容都必须拆分)
regex\u pat=re.compile(r'\d\.\d+s',flags=re.IGNORECASE)oppoerunitiesM=opportunities[1].str.split(regex\u pat)TypeError:re.Pattern类型的对象没有len()
这似乎是我真正需要的!我试过了,但只有当我删除如下的s时,它才会拆分单元格:
(r'[0-9]{1}\[0-9]{2}',expand=True)
。因此,我将s保留在新单元格的开头,我真的很想删除它。
                                      0                                   1                                      2                    3 4
0  Eliminate render-blocking resources    Serve images in next-gen formats    Reduce server response times (TTFB)    Remove unused CSS