首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按任何顺序从a列中获取b列中找到的字符串计数,并在新列中获取返回计数。

按任何顺序从a列中获取b列中找到的字符串计数,并在新列中获取返回计数。
EN

Stack Overflow用户
提问于 2021-07-15 08:34:45
回答 2查看 42关注 0票数 0

我试图在列b中得到子串的计数,该列按任何顺序与列a相匹配。

示例:

代码语言:javascript
复制
[col a]                   [col b]                             [frequency]
big red car            elon musk drives a big red car              1
elon musk car          elon musk drives a big red car              1
red big car            elon musk drives a big red car              1

最大的匹配量需要固定在1。例如,大型红色汽车只能匹配一次,而不是对每一个组合进行匹配。

如果可能的话,我需要返回与单词完全匹配的信息。汽车不匹配的汽车,,d,等。

我试过的是:

代码语言:javascript
复制
df["frequency"] = df.apply(lambda x: x['col b'].count(x['col a']), axis=1)

这只会找到精确的匹配,但我需要它们按任何顺序进行匹配。

任何帮助都很感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-15 08:47:23

假设您想检查"col“中的所有单词都在"col”中:

代码语言:javascript
复制
def ismatch(s):
    A = set(s['[col a]'].split())
    B = set(s['[col b]'].split())
    return A.intersection(B) == A
df.apply(ismatch, axis=1)

投入:

代码语言:javascript
复制
         [col a]                         [col b]  [frequency]
0    big red car  elon musk drives a big red car            1
1  elon musk car  elon musk drives a big red car            1
2    red big car  elon musk drives a big red car            1
3   red big card  elon musk drives a big red car            1

产出:

代码语言:javascript
复制
0    True
1    True
2    True
3   False
票数 1
EN

Stack Overflow用户

发布于 2021-07-15 09:57:46

尝试通过str.contains()

代码语言:javascript
复制
words='|'.join(df['[col a]'].unique())
#Finally:
df['[frequency]']=df['[col b]'].str.contains(words).astype(int)
#OR
df['[frequency]']=df['[col b]'].str.contains(words).view('i1')

df输出

代码语言:javascript
复制
[col a]                   [col b]                             [frequency]
big red car            elon musk drives a big red car              1
elon musk car          elon musk drives a big red car              1
red big car            elon musk drives a big red car              1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68390475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档