Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从B列获取A列中找到的字符串计数,并在新列中返回值_Python_Pandas_Dataframe - Fatal编程技术网

Python 从B列获取A列中找到的字符串计数,并在新列中返回值

Python 从B列获取A列中找到的字符串计数,并在新列中返回值,python,pandas,dataframe,Python,Pandas,Dataframe,我试图得到熊猫中第二列中一列内容的计数。我想把频率计数放在一个叫做频率的新列中 我想在名为[Frequency]的新列中的[Description]列中找到我的[Keyword]列中的字符串的次数 所需输出 [keyword] [Description] [Frequency] car car dog car car 3 car car dog dog dog

我试图得到熊猫中第二列中一列内容的计数。我想把频率计数放在一个叫做频率的新列中

我想在名为[Frequency]的新列中的[Description]列中找到我的[Keyword]列中的字符串的次数

所需输出

[keyword]           [Description]          [Frequency]
car                 car dog car car             3
car                 car dog dog dog             1
new car             old car car dog             0
   keyword       Description  frequency
0      car   car dog car car          3
1      car   car dog dog dog          1
2  new car   old car car dog          0
我尝试过的代码

我尝试了以下代码,但有两个问题。(频率计数不准确,格式完全错误)


如果精确匹配不重要,请使用
count
,这意味着如果
carito
在描述中匹配
car
。如果需要避免,请使用
@Dani Mesejo
回答

df['new'] = df.apply(lambda x: x['Description'].count(x['keyword']), axis=1)
print (df)
   keyword      Description  Frequency  new
0      car  car dog car car          3    3
1      car  car dog dog dog          1    1
2  new car  old car car dog          0    0

如果要精确匹配单词,请使用此选项:

df['frequency'] = [len(re.findall(rf'\b{k}\b', d)) for k, d in zip(df['keyword'], df['Description'])]
print(df)
输出

[keyword]           [Description]          [Frequency]
car                 car dog car car             3
car                 car dog dog dog             1
new car             old car car dog             0
   keyword       Description  frequency
0      car   car dog car car          3
1      car   car dog dog dog          1
2  new car   old car car dog          0
@jezrael建议的更好的替代方案是:

df['frequency'] = [len(re.findall(rf'\b{k}\b', d)) for k, d in df[['Description', 'keyword']].to_numpy()]