You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中提取方括号内的数据?

提取DataFrame列中方括号内的字符串

你的正则表达式失败的核心原因是方括号[属于正则元字符,必须用反斜杠\转义后才能匹配实际的方括号字符。下面提供几种可行的解决方案:

方法1:使用str.extract(推荐,语法最简洁)

extract可以直接提取正则捕获组的内容,无需额外处理结果:

import pandas as pd

# 构建示例DataFrame
df = pd.DataFrame({
    'ID': [1, 2, 3],
    'col1': ['[2023/01/06:12:00:00 AM]', '[2023/01/06:12:00:00 AM]', '[2023/01/06:12:00:00 AM]']
})

# 提取括号内的内容
df['col1'] = df['col1'].str.extract(r'\[(.*?)\]')
print(df)

运行后输出:

ID                  col1
0   1  2023/01/06:12:00:00 AM
1   2  2023/01/06:12:00:00 AM
2   3  2023/01/06:12:00:00 AM

方法2:修正str.findall的正则表达式

将正则中的[转义为\[,同时处理findall返回的列表结果:

df['col1'] = df['col1'].str.findall(r'(?<=\[)([^\]]+)').str[0]

解释:(?<=\[)是转义后的正向预查,匹配左方括号之后的内容;[^\]]+匹配所有非右方括号的字符,最后用.str[0]取出列表中的唯一匹配项。

方法3:字符串切片(仅适用于格式完全统一的场景)

如果可以确定所有col1的字符串都是以[开头、]结尾,可直接用切片去掉首尾字符:

df['col1'] = df['col1'].str[1:-1]

内容的提问来源于stack exchange,提问作者unicorn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 01:00:48