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]
我有一个包含字符串列的数据框:
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]