【发布时间】:2018-09-04 17:59:27
【问题描述】:
我目前有这个 df,其中 rect 列是所有字符串。我需要从中提取 x、y、w 和 h 到单独的列中。数据集非常大,所以我需要一种有效的方法
df['rect'].head()
0 <Rect (120,168),260 by 120>
1 <Rect (120,168),260 by 120>
2 <Rect (120,168),260 by 120>
3 <Rect (120,168),260 by 120>
4 <Rect (120,168),260 by 120>
到目前为止,此解决方案有效,但是您可以看到它非常混乱
df[['x', 'y', 'w', 'h']] = df['rect'].str.replace('<Rect \(', '').str.replace('\),', ',').str.replace(' by ', ',').str.replace('>', '').str.split(',', n=3, expand=True)
有没有更好的方法?可能是正则表达式方法
【问题讨论】:
-
字符串列是在哪里创建的?
-
字符串列是在我无权访问的其他函数中创建的,所以我必须从这里开始