python - 计算数据框中字符串的出现次数

标签 python string pandas dataframe apply

通过 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/

相关文章:

python - 声明变量的 pythonic 方式是什么?

python - pandas 连接具有重复索引的列

c - 我试图只从文件中读取前 3 个字符 - c

c# - 从具有多个零值的枚举中获取项目名称

python - Pandas CSV 到 Django 响应

python - 在 pandas 中搜索大于数字的值

python - 如何在 Windows XP 源安装上消除 matplotlib 中的 ft2font 导入错误?

python - Scrapy - 上传到 S3 时如何为一个项目中的多个文件 URL 设置自定义路径?

python - 使用正则表达式从特定文本格式获取信息

python - 在 Pandas 中每行连接列