python - Pandas:如何将一列包含多个元组的字符串拆分为多列单独的元组字符串
问题描述
我需要有关在使用解释切片字符串时如何进行的建议。
我在数据框列中:
数据 |
---|
(0,1), (1,2) |
我想把它分成这种形式。
1 | 2 |
---|---|
(0,1) | (1,2) |
如何正确拆分此字符串?
当我使用这个时:
.str.split(',', expand=True)
,它也会在括号之间划分我的字符串,但我不想这样做。如何正确地做到这一点(请解释一下)?
解决方案
您可以使用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)
推荐阅读
- r - 如何在 R 中使用三元组进行 LDA?
- php - 如何在 WordPress 中启用图片库
- javascript - 无法用 v-if 比较数字
- matlab - 如何在 Matlab 中找到 X、Y 和 Z 的 RANSAC
- android - 通知托盘中的 Android Bot 而不是启动器图标 - FCM
- javascript - Angular 7:更新的 systemjs.config.js 是什么?
- javascript - 测试:62 未捕获的 ReferenceError:未在 HTMLButtonElement.onclick 中定义(测试:62)
- azerothcore - 如何禁用实例?
- objective-c - 如何让 IOS 应用程序信任本地主机以进行开发 API
- angular-material - 加载带有多个选项的材质选择并选中某些选项?