Python 计算每个日期的频率字
我想数一数每个日期有多少个句子包含特定的单词。 例如:Python 计算每个日期的频率字,python,pandas,Python,Pandas,我想数一数每个日期有多少个句子包含特定的单词。 例如: Date Sentences 2020-10-22 Word1 bla bla bla Word2 2020-10-22 Bla bla bla bla 2020-10-22 Word3 bla bla 2020-10-22 Word1 bla bla bla 2020-10-23 Word3 bla 2020-10-23 Word1 bla bla ... 我要搜索的单词用Wordx标识(这只是一个例子,它们是像trump、
Date Sentences
2020-10-22 Word1 bla bla bla Word2
2020-10-22 Bla bla bla bla
2020-10-22 Word3 bla bla
2020-10-22 Word1 bla bla bla
2020-10-23 Word3 bla
2020-10-23 Word1 bla bla
...
我要搜索的单词用Wordx标识(这只是一个例子,它们是像trump、money和其他的单词),而bla bla bla bla只是其他文本(例如,will not win,…)。
每一个单词,单词1,单词3,…,我想知道在一个特定的日期,它在句子中被使用的次数。
我的方法是创建一个特定单词的列表,我想在我的句子中查找这些单词,并使用GroupByDate通过日期查看它们,总结每个单词在时间中使用的次数。
比如说:
Mylist=[‘word1’,’word3’]
df[‘Sentences’].str.contains(‘|’, Mylist).groupby([‘Date’]).sum()
Word1 Freq
2020-10-22 2
2020-10-23 1
Word3 Freq
2020-10-22 1
2020-10-23 1
我没有得到预期的输出,所以我认为我在代码中写了一些错误的东西,或者这可能是解决问题的错误方法
我想要这样的东西:
Mylist=[‘word1’,’word3’]
df[‘Sentences’].str.contains(‘|’, Mylist).groupby([‘Date’]).sum()
Word1 Freq
2020-10-22 2
2020-10-23 1
Word3 Freq
2020-10-22 1
2020-10-23 1
您所处的路径是正确的,只需稍作语法更正:
Date
分组,必须将Date
作为索引###示例数据,始终提供可调用的代码行
###或者一个干净的表,可以通过“读取”剪贴板进行分析`
df=pd.DataFrame({
‘日期’:[‘10/22’、‘10/22’、‘10/22’、‘10/22’、‘10/23’、‘10/23’],
“句子”:[
“单词1 bla bla bla Word2”,
"呜呜呜呜",,
“Word3布拉布拉”,
“单词1布拉布拉布拉布拉布拉布拉”,
“Word3 bla”,
“Word1布拉布拉”
]
}).set_索引(“日期”)
Mylist=['Word1','Word3']
out={#听写理解
###实际解决方案
word:df['sequences'].str.contains(word).groupby('Date').sum()
我的列表中的单词
}
对于键,val in out.items():
打印(键)
打印(val,“\n”)
输出
Word1
Date
10/22 2
10/23 1
Name: Sentences, dtype: int64
Word3
Date
10/22 1
10/23 1
Name: Sentences, dtype: int64
请注意,此解决方案不会计算同一句子中一个单词的多次出现次数,如在中,“Word1应返回两个Word1计数”
,这将只返回True
,而groubpy
调用将其视为一个
如果要计算同一句话中的多次出现次数,可以使用:
df['sequences'].str.findall(word).map(len).groupby('Date').sum()
也许可以使用字典,将单词作为键,将结果数据框作为值?非常感谢您的帮助并回答RichieV。