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