python - 如何在pandas数据框+ python中的一列中查找<>之间的多个子字符串

标签 python regex string find match

我正在使用 Pandas 和 Python。我的数据是:

a=pd.DataFrame({'ID':[1,2,3,4,5],
                'Str':['aa <aafae><afre> ht4',
                       'v fef <><433>',
                       '<1234334> <a>',
                       '<bijf> 04<9tu0>q4g <vie>',
                       'aaa 1']})

我想提取<>之间的所有子字符串并将它们与空白合并。例如,上面的例子应该有结果:

aafae afre
  433
1234334 a
bijf 9tu0 vie
nan

因此 < > 之间的所有子字符串都被提取出来。如果没有这样的字符串,就会出现 nan。我已经尝试过 re 库和 str 函数。但我对正则表达式真的很陌生。有人可以帮我吗?

最佳答案

使用pandas.Series.str.findall:

a['Str'].str.findall('<(.*?)>').apply(' '.join)

输出:

0       aafae afre
1              433
2        1234334 a
3    bijf 9tu0 vie
4                 
Name: Str, dtype: object

关于python - 如何在pandas数据框+ python中的一列中查找<>之间的多个子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57423772/

相关文章:

python - 将 Django 表单保存到 csv 文件

python - 删除 Pandas 中 2 个特定列之间的空值

javascript - 月份日期的 JS 正则表达式

c - 如何将字符附加到字符串上?

java - 如何更换?从字符串中的右双引号生成?

Mysql提取json数据并搜索多个值

python - SQLAlchemy 在一个事务中更新多行

python - 即使我在模块中使用下划线作为隐藏函数和变量的前缀,我是否应该定义 __all__?

javascript - 如何使用 .every() 方法验证针对 Regex 的输入?

regex - 如何使用 RegEx 禁止 ColdFusion 中的非字母数字字符