计算单元格pandas中多个子字符串的外观

时间:2014-07-11 15:02:33

标签: python string pandas count contains

我有一个包含相当冗长的字符串的列。每个字符串可以包含也可以不包含子字符。这样的子串如' 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。我认为应该有更好的方法。

1 个答案:

答案 0 :(得分: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)