以字符串形式计数并存储映射到其他值

时间:2020-05-27 10:02:46

标签: pandas string dataframe

我有一个pandas数据框,其中包括这样的列(以及其他列),RATING是整数0到5,COMMENT是字符串:

RATING   COMMENT
1        some text
2        more text
3        other text
...      ...

我现在想挖掘(由于缺少更好的单词),用于列出字符串列表的关键字:

list = ['like', trust', 'etc etc etc']

,并希望通过COMMENT进行迭代,并通过评分对关键字的数量进行计数,从而获得df

KEYWORD     RATING     COUNT
like        1          202
like        2          325
like        3          0
like        4          967
like        5          534
...
trust       1          126
....

我该如何实现?

我是初学者,非常感谢您的帮助(而且越简单越容易理解越好)

谢谢

嗨,我一直在手动进行遍历, 即

#DATA_df is the original data

word_list = ['word', 'words', 'words', 'more']
values = [0] * len(word_list)
tot_val=[values]*5
rating_table = pd.DataFrame(tot_val, columns=word_list)

for i in len(word_list):
    for g in len (DATA_df[COMMENT]):
            if i in DATA_df[COMMENT][g]:
                     rating_table[i][DATA_df[RATING]-1] +=1 

这给了像这样的DF

   word  words  words  more
0     0      0      0     0
1     0      0      0     0
2     0      0      0     0
3     0      0      0     0
4     0      0      0     0
我随后尝试添加的

...看起来很笨拙

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题,学到的要点是使用分组依据根据等级预先选择数据,这会对数据进行切片,并且可以在各组之间进行交替。将str.lower()与str.count()结合使用效果很好。

如果有经验的程序员能够为我提供更好的解决方案,我感到非常感谢,但这至少可以奏效。

[1]  TRUE FALSE FALSE FALSE FALSE FALSE
[1] FALSE  TRUE  TRUE FALSE FALSE FALSE
[1] FALSE FALSE  TRUE  TRUE  TRUE FALSE

我仍在努力的一件事是如何使用正则表达式使它查找完整的单词。我相信\ b是正确的,但是如何将其放入str.count函数呢?