将一个数据帧列的出现计为另一个数据帧列的子字符串?

时间:2017-02-09 12:05:18

标签: python python-2.7 pandas substring

我是python的新手,已经找到了在df列中计算硬编码子串的答案,但在使用另一个df列作为输入时无法找到答案。大熊猫有可能吗?

它非常混乱,但基本上我的数据框是:

ID    Info
3457  <type1><stats></id>3457<type2></id>3457<type2></id>45
234   <type2><stats></id>234
4555  <type2><stats></id>604555<type1></id>4555<type2></id>4555
2378  <stats></id>555

我设法计算特定字符串的出现次数,例如

df['Type1_Count']=df['Info'].apply((lambda string: string.count("<type1>")))
df['Type2_Count']=df['Info'].apply((lambda string: string.count("<type2>")))

但是我还需要计算第一列中ID的出现次数,因为它们可能有一个错误匹配,所以它实际上需要是一个字符串“/ id&gt;”的计数加上 ID 列。

希望这是有道理的,感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以尝试其中一种

df = pd.DataFrame({'name':['bernard','Samy','yyy'],'digit':[2,3,3],'SearchID':['be','xx','Sam']})
print df

for ID in df['SearchID']:
    print ID, '\n', df.name.str.count(ID)

Searchstr = df['SearchID'].str.cat(sep='|')
print df.apply(lambda x: x['name'].count(x['SearchID']), axis=1)