gpt4 book ai didi

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

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

我正在尝试获取 pandas 中第二列中一列内容的计数。我想将频率计数放入一个名为频率的新列中。

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

所需输出

[keyword]           [Description]          [Frequency]
car car dog car car 3
car car dog dog dog 1
new car old car car dog 0

我尝试过的代码

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

s = df['Keyword']
pat = r'\b{}\b'.format('|'.join(s))

from sklearn.preprocessing import MultiLabelBinarizer

mlb = MultiLabelBinarizer()
df_new = pd.DataFrame(mlb.fit_transform(df['Description'].str.findall(pat)),
columns=mlb.classes_,
index=df.index).reindex(columns=s, fill_value=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
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()]

关于python - 获取 B 列中 A 列中找到的字符串数,并在新列中返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65048803/

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