计算单元格 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 中多个子字符串的出现次数的主要内容,如果未能解决你的问题,请参考以下文章