Python/DataFrame:计算每个列单元格中的唯一单词(不计算同一列单元格中的相同单词)

Python/DataFrame: Count Unique Words in Each Column Cell (Not Counting Same Words in the Same Column Cell)

我认为这会很容易,但我在寻找答案时遇到了问题。

我想计算每个列单元格中的唯一单词数。如果同一个单词在同一个单元格中重复出现,我想只计算一次

即)

第 1 次:“我 等待 等待 并最终离开了医院”

第二:“我只等了 1 小时。我的体验还不错”

我想要的:

我试过这个代码

Reviews_Freq_Words=Reviews.ReviewText2.apply(lambda x: pd.value_counts(x.split(" "))).sum(axis = 0)

有什么想法吗?

我想出了两种不同的方法,performance-wise我不清楚哪一种更好,但你可以自己尝试一下。

Reviews_Freq_Words = Reviews.ReviewText2.apply(lambda x: pd.value_counts(list(set(x.split(" "))))).sum(axis = 0)
Reviews_Freq_Words = Reviews.ReviewText2.apply(lambda x: pd.value_counts(pd.unique(x.split()))).sum(axis = 0)

如果我没理解错的话,每个列单元格都有一个句子吗?

我也是 pandas 的新手,所以刚试了一下。这对我有用:

import pandas as pd

data = ["I waited and waited and eventually left the hospital","I waited only 1 hour. My experience wasn't so bad"]
df = pd.DataFrame(data, columns=['sentences'])

result = df['sentences'].apply(lambda x: list(set(x.split(' ')))).explode().value_counts()