计算单元格 pandas 中多个子字符串的出现次数

Posted

技术标签:

【中文标题】计算单元格 pandas 中多个子字符串的出现次数【英文标题】:Counting appearances of multiple substrings in a cell pandas 【发布时间】:2014-09-02 06:15:59 【问题描述】:

我有一列包含相当长的字符串。每个字符串可能包含也可能不包含子字符串。诸如“H 07”、“H 06”或“F 13”之类的子字符串可能会或可能不会出现在数据框单元格中。我想计算这些子字符串的出现并将结果添加到新单元格。 原始单元格值为

df.iloc[0,0]    
'rfgergerggr H 07 jgjg gjgj H 06 gjhgj  H 06 '. 

该过程的结果应该是一个带有

的新单元格
df.iloc[0,1]
'H 07':1, 'H 06':2

我想这应该在 str.contains 的帮助下完成。但是我正在寻找大约 50 个不同的子字符串,我无法想象找到它们的好方法。 另外,我认为复杂的 lambda 可以解决我的问题。但不知道如何构建它。

到目前为止,我已经尝试过 str.contains 但它只显示子字符串是否存在,我没有得到计数。此外,要找到我感兴趣的所有 50 个子字符串,我每次都必须调用 str.contains。我认为应该有更好的方法来做到这一点。

【问题讨论】:

acushner,在最后一次编辑中 只需将apply 与根据子字符串的str.count 创建字典的函数一起使用 【参考方案1】:

类似:

substrs = [...]
def f(cell_value):
    return k: v for k, v in ((s, cell_value.count(s)) for s in substrs) if v
df.column.apply(f)

【讨论】:

以上是关于计算单元格 pandas 中多个子字符串的出现次数的主要内容,如果未能解决你的问题,请参考以下文章

excel如何计算一行excel单元格中相同字符字母出现次数

统计某单元格输入次数

怎样在一个单元格中显示出现次数

计算谷歌工作表单元格上的出现次数

EXCEL中统计某个区域内多个数字一共出现的次数

EXCEL同一单元格内出现相同字母的次数