Python/DataFrame:计算每个列单元格中的唯一单词(不计算同一列单元格中的相同单词)
Python/DataFrame: Count Unique Words in Each Column Cell (Not Counting Same Words in the Same Column Cell)
我认为这会很容易,但我在寻找答案时遇到了问题。
我想计算每个列单元格中的唯一单词数。如果同一个单词在同一个单元格中重复出现,我想只计算一次。
即)
第 1 次:“我 等待 和 等待 并最终离开了医院”
第二:“我只等了 1 小时。我的体验还不错”
我想要的:
- 等待:2(即使第一列单元格中有 2 个“等待”,我只想计算一次,因为它是相同的,所以总共 2 - 一个来自第一个,一个来自第二个)
- 医院: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()
我认为这会很容易,但我在寻找答案时遇到了问题。
我想计算每个列单元格中的唯一单词数。如果同一个单词在同一个单元格中重复出现,我想只计算一次。
即)
第 1 次:“我 等待 和 等待 并最终离开了医院”
第二:“我只等了 1 小时。我的体验还不错”
我想要的:
- 等待:2(即使第一列单元格中有 2 个“等待”,我只想计算一次,因为它是相同的,所以总共 2 - 一个来自第一个,一个来自第二个)
- 医院: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()