gpt4 book ai didi

pandas - 在 Pandas 数据框中查找一组子字符串的计数

转载 作者:行者123 更新时间:2023-12-01 23:30:10 25 4
gpt4 key购买 nike

我得到了一组子字符串。我需要找到数据框中特定列中所有这些子字符串的出现次数。相关的数据框看起来像这样

  training['concat']

0 svAxu$paxArWAn
1 xvAxaSa$varRANi
2 AxAna$xurbale
3 go$BakwAH
4 viXi$Bexena
5 nIwi$kuSalaM
6 lafkA$upamam
7 yaSas$lipsoH
8 kaSa$AGAwam
9 hewumaw$uwwaram
10 varRa$pUgAn

我的子字符串集是一个字典,其中键是子字符串,值是它们出现的概率

  reg = {'anuBavAn':0.35, 'a$piwra':0.2 ...... 'piwra':0.7, 'pa':0.03, 'a':0.0005}
#The length of dicitioanry is 2000

特别是我需要找到那些出现超过两次的子串

我编写了以下代码来执行该任务。是否有更优雅的 pythonic 方式或 panda 特定方式来实现与当前实现相同的方式需要相当长的时间来执行。

  elites = dict()
for reg_pat in reg_:
count = 0
eliter = len(training[training['concat'].str.contains(reg_pat)]['concat'])
if eliter >=3:
elites[reg_pat] = reg_[reg_pat]

最佳答案

你可以使用apply代替str.contains,它更快:

reg_ = {'anuBavAn':0.35, 'a$piwra':0.2, 'piwra':0.7, 'pa':0.03, 'a':0.0005}

elites = dict()
for reg_pat in reg_:
if training['concat'].apply(lambda x: reg_pat in x).sum() >= 3:
elites[reg_pat] = reg_[reg_pat]

print (elites)
{'a': 0.0005}

关于pandas - 在 Pandas 数据框中查找一组子字符串的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39403678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com