【问题标题】:Counting appearances of multiple substrings in a cell pandas计算单元格 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 创建字典的函数一起使用

标签: python string pandas count contains


【解决方案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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    • 2020-02-21
    • 2012-02-12
    相关资源
    最近更新 更多