通过 R
,我可以轻松地制作一个数据框,其中包含来自字符串列表的某些字符串模式的频率。
library(stringr)
library(tm)
library(dplyr)
text = c('i am so hhappy happy now','you look ssad','sad day today','noway')
dat = sapply(c('happy', 'sad'), function(i) str_count(text, i))
dat = data.frame(dat)
dat = dat %>% mutate(Sentiment = (happy)-(sad))
因此,我可以得到这样的数据框
happy sad Sentiment
1 2 0 2
2 0 1 -1
3 0 1 -1
4 0 0 0
在 Python 中,我可以假设除了 sapply()
import pandas as pd
text = ['i am so hhappy happy now','you look ssad','sad day today','noway']
????
dat = pd.DataFrame(dat)
dat['Sentiment'] = dat.apply(lambda c: c.happy - c.sad)
????
会是什么?
最佳答案
你可以使用pd.Series.str.count
:
import pandas as pd
import numpy as np
text = ['i am so hhappy happy now','you look ssad','sad day today','noway']
df = pd.DataFrame({'text' : text})
df['happy'] = df.text.str.count('happy')
df['sad'] = df.text.str.count('sad')
df['Sentiment'] = df.happy - df.sad
df
text happy sad Sentiment
0 i am so happy happy now 2 0 2
1 you look sad 0 1 -1
2 sad day today 0 1 -1
3 noway 0 0 0
关于python - 计算数据框中字符串的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45960935/