dataframe一列为str格式,按照特定字符将内容分为两列,例如将“【1.1】百事可乐”分为1.1和百事可乐,【】可能出现在字符串的任意位置,最后的结果储存在dataframe新的两列中
时间: 2024-05-16 11:15:07 浏览: 79
python中dataframe将一列中的数值拆分成多个列
5星 · 资源好评率100%
可以使用 pandas 中的 `str.extract()` 方法来实现。
假设你要将名为 `df` 的 DataFrame 中某列名为 `content` 的列按照中括号 `[]` 中的内容分成两列,可以采用以下代码:
```python
import pandas as pd
# 示例数据
df = pd.DataFrame({'content': ['【1.1】百事可乐', '可口可乐【2.2】', '雪碧【3.3】']})
# 使用正则表达式提取中括号中的内容
df[['num', 'name']] = df['content'].str.extract(r'\[(.*?)\](.*)')
# 输出结果
print(df)
```
输出:
```
content num name
0 【1.1】百事可乐 1.1 百事可乐
1 可口可乐【2.2】 2.2 可口可乐
2 雪碧【3.3】 3.3 雪碧
```
其中,`str.extract(r'\[(.*?)\](.*)')` 会提取出 `[` 和 `]` 之间的内容作为第一列 `num`,以及 `]` 后面的所有内容作为第二列 `name`。`()` 表示提取其中的内容,`.*?` 表示非贪婪模式的匹配任意字符,`[]` 表示匹配其中任意一个字符。
最后,将提取出的两列数据存入原 DataFrame 中即可。
阅读全文