如何从Pandas Dataframe-Python中计算字频率

时间:2017-03-29 07:46:53

标签: python pandas dictionary dataframe text-mining

我目前从字典中创建了一个Pandas Dataframe。 Dataframe看起来像:

      URL         TITLE
0   /xxxx.xx   Hi this is word count
1   /xxxx.xx   Hi this is Stack Overflow
2   /xxxx.xx   Stack Overflow Questions

我想在此表中添加一个新列,其中列出了“Stack Overflow”一词出现的频率。例如,它就像:

      URL         TITLE                          COUNT
0   /xxxx.xx   Hi this is word count               0
1   /xxxx.xx   Hi this is Stack Overflow           1
2   /xxxx.xx   Stack Overflow Questions            1

count函数似乎不适用于字典,但仅适用于字符串。有没有简单的方法来做到这一点?

2 个答案:

答案 0 :(得分:3)

假设这实际上是pandas dataframe,你可以这样做:

import pandas as pd

table = {   'URL': ['/xxxx.xx', '/xxxx.xx', '/xxxx.xx'], 
            'TITLE': ['Hi this is word count', 'Hi this is Stack Overflow', 'Stack Overflow Questions']}

df = pd.DataFrame(table)
df['COUNT'] = df.TITLE.str.count('Stack Overflow')
print(df)

这会产生:

                       TITLE       URL  COUNT
0      Hi this is word count  /xxxx.xx      0
1  Hi this is Stack Overflow  /xxxx.xx      1
2   Stack Overflow Questions  /xxxx.xx      1

答案 1 :(得分:0)

数据帧上的count()方法非常适合计算单个值的出现次数,例如" Stack Overflow"。

要对多个值进行频率分析,请考虑使用collection.Counter(data)及其.most_common(k)方法。