我在熊猫数据框中有一组要拆分的字符串,只保留文本。
以下是一个字符串中的示例: “消除渲染阻止资源0.46s以下一代格式提供图像0.45s减少服务器响应时间(TTFB)0.22s删除未使用的CSS 0.15s”
这是我想在不同栏中输入的内容: ['消除渲染阻止资源','以下一代格式提供图像','减少服务器响应时间(TTFB)','删除未使用的CSS']
我想到了对'。'使用.str.split命令。在右边加上3个字符,在左边增加1个字符...但是老实说,我不知道从哪里开始。
感谢您的帮助
答案 0 :(得分:3)
与re.split()
一起使用正则表达式
import re
re.split(r'\d\.\d+s', your_string)
\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 ', '']
此后,您可以使用删除尾随空格和空字符串。
答案 1 :(得分:1)
我们可以在此处将Series.str.split
与正则表达式结合使用。我们还传递了参数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