首页 > 解决方案 > Pandas:如何将一列包含多个元组的字符串拆分为多列单独的元组字符串

问题描述

我需要有关在使用解释切片字符串时如何进行的建议。

我在数据框列中:

数据
(0,1), (1,2)

我想把它分成这种形式。

1 2
(0,1) (1,2)

如何正确拆分此字符串?

当我使用这个时:

.str.split(',', expand=True)

,它也会在括号之间划分我的字符串,但我不想这样做。如何正确地做到这一点(请解释一下)?

标签: pythonpandas

解决方案


您可以使用str.extract()正则表达式,如下所示:

df['data'].str.extract(r'(\(\d+,\s*\d+\))\s*,\s*(\(\d+,\s*\d+\))')

或使用str.split(),如下所示:

df['data'].str.split(r'(?<=\))\s*,\s*', expand=True)

在这里,我们使用 regex positive lookbehind)在逗号之前查找右括号,以匹配逗号。因此,我们只在元组之间而不是在元组内拆分逗号。

结果:

       0      1
0  (0,1)  (1,2)

推荐阅读