Pandas 使用正则表达式从字符串列中提取子字符串

Pandas extract substring from column of string using regex

我有一个包含字符串列的数据框:

df['C23']

Col1 Col2
11   /*[lion]*/
21   /*[tiger]*/

我需要以下内容:

Col1 Col2
11   lion
21   tiger

我尝试了以下代码:

df['C23'].str.extract(r"/*(.*?)*/')

但它生成空字符串。

您可以使用

df['result'] = df['C23'].str.extract(r"/\*\[(.*?)]\*/")

/\*\[(.*?)]\*/ 正则表达式匹配

  • /\*\[ - /*[ 字符串
  • (.*?) - 第 1 组:除换行字符外的任何零个或多个字符尽可能少
  • ]\*/ - ]*/ 字符串

假设您要将 /*[lion]*/ 转换为 lion 并且所有元素都遵循相同的模式,您不需要正则表达式,只需切片:

df['Col2'] = df['Col2'].str[3:-3]