首页 > 解决方案 > Pandas - 基于关键词提取

问题描述

我正在尝试使用以下条件从一行中提取部分文本:

df['output'] = df['subject'].str.split('Class : ').str[1]

上面的代码运行良好,但是如果该行有多个值,Class我该如何修改它以提取最后一个。

例子:

subject, output
Class Name : Science, Science
Class : Class Assigned Class : Math, Class Assigned Class : Math

我如何更改代码以修复预期输出所在的第二行的输出,Math但由于该单词Class多次出现,因此它从第一次出现中获取。

标签: python-3.xpandas

解决方案


您的示例非常令人困惑,因为它并没有真正做到您所描述的或您的示例代码所做的事情。第一行根本没有拆分,因为拆分条件"Class : "从未出现,第二行的拆分与您显示的不同 - 它"Class Assigned"在列表的元素 1 中输出。

也就是说,仅使用 [-1] 进行索引就可以很好地使第二行Math作为输出获得。


推荐阅读