为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 pandas 列值作为其他数据框中的查找

如何使用 pandas 列值作为其他数据框中的查找

慕盖茨4494581 2022-01-11 20:18:10
我有两个熊猫数据框,一个包含所有开放文本电影评论的一列(movie_review_df),另一个(movie_ngrams_df)包含在movie_review_df中找到的最常见的ngram(ngram的前5个= 1和ngram的前5个= 2) .我基本上想编写一个函数来遍历我的movie_ngrams_df中我的单词/单词短语列的每一行,并将它们用作查找以查找包含这些单词/工作短语的评论。想象一下,我的 movie_ngrams_df 在 2 列中有 2 个值。1)a列(ngram_wordphrase)中的单词“love”和b列(ngram_group)中的“one”2)a列中的短语“太长”和b列中的“两个”我认为使用循环和.contains()调用的函数可以工作,但似乎无法理解它。这在某种程度上是我希望它工作的方式。def ngram_lookup (ngram,reviews):appended_df = pd.concat(for word in ngram:                            reviews_df[reviews_df['reviews'].str.contains('ngram')])return appended_df我想要一个函数来搜索movie_review_df中的每一个电影评论文本并提取包含“爱”这个词的评论。我希望输出是一个新的 df (ngram_detail_df),其中表示的每一行都包含 word_phrase(例如 a 列中的 love),然后是包含单词“love”的完整单个字符串审查(放置在 b 列中)。因此,每个 word_phrase 可能会在 a 列中多次列出。然后(你知道它即将到来)我希望能够为我们的 movie_ngrams_df 中的下一个 word_phrase 做同样的事情,它是“太长”。我想将这些新的“太长”结果附加到我们的“爱”搜索返回的结果中,这样最后,我们就只有一个 df 包含最热门的 word_phrases 和每个存在该 word/word_phrase 的电影评论。
查看完整描述

1 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

怎么样的东西


words = movie_ngrams_df["ngram_wordphrase"].array

ngram_detail_df = movie_review_df.copy()


for word in words:

    ngram_detail_df[word] = ngram_detail_df["reviews"].apply(lambda x: word in x)


ngram_detail_df = ngram_detail_df.melt(id_vars=["reviews"])

ngram_detail_df = ngram_detail_df[ngram_detail_df["value"] == True]

ngram_detail_df = ngram_detail_df.loc[:, ["reviews", "variable"]

ngram_detail_df.rename(columns={"variable": "ngram"}, inplace=True)


查看完整回答
反对 回复 2022-01-11
  • 1 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信