Python 计算子字符串列表在列中的出现次数

Python 计算子字符串列表在列中的出现次数,python,string,pandas,dataframe,Python,String,Pandas,Dataframe,我想计算包含长字符串的列中子字符串列表的出现次数,并在列表中创建一个count列 Input: ID History 1 USA|UK|IND|DEN|MAL|SWE|AUS 2 USA|UK|PAK|NOR 3 NOR|NZE 4 IND|PAK|NOR lst=['USA','IND','DEN'] Output : ID H

我想计算包含长字符串的列中子字符串列表的出现次数,并在列表中创建一个count列

      Input:          
     ID    History

     1     USA|UK|IND|DEN|MAL|SWE|AUS
     2     USA|UK|PAK|NOR
     3     NOR|NZE
     4     IND|PAK|NOR

       lst=['USA','IND','DEN']


     Output :
     ID    History                      Count

     1     USA|UK|IND|DEN|MAL|SWE|AUS    3
     2     USA|UK|PAK|NOR                1
     3     NOR|NZE                       0
     4     IND|PAK|NOR                   1

这里有一个方法
str.count

df1.History.str.count('|'.join(lst))
Out[316]: 
0    3
1    1
2    0
3    1
Name: History, dtype: int64

#df1['Count']= df1.History.str.count('|'.join(lst))
使用lambda:

df.History.apply(lambda x: len([i for i in x.split("|") if i in lst]))
结果

0    3
1    1
2    0
3    1