在Pandas中,我有一个具有以下格式的列和记录的数据框架:
text source senti
-------------------------------
great food site1 0.6
awful staff site4 -0.4
good chef site8 0.4
average food site6 0.05
bad food site2 -0.8文本列本质上是对某物的描述或意见。我想对数据集的平均情绪得出一些结论,输出如下。
sentiment count
----------------
positive 2
neutral 1
negative 2我们有一个“哨兵”的计数分组为积极,消极或中立。
在满足下列条件时,这些情绪被视为每一群体的情绪:
提前大谢
发布于 2017-03-20 15:47:53
我会用pd.cut + groupby
cut = pd.cut(
df.senti,
[-np.inf, -.1, .1, np.inf],
labels=['positive', 'neutral', 'negative']
)
df.groupby(cut).senti.count().reset_index(name='count')
senti count
0 positive 2
1 neutral 1
2 negative 2正如@root所指出的,pd.value_counts在cut变量上给出了相同的解决方案。
pd.value_counts(cut, sort=False).rename_axis('senti').reset_index(name='count')发布于 2017-03-20 15:49:59
另一个使用apply映射到组的版本:
df.groupby(df['senti'].apply(lambda x: 'negative' if x < -0.1 else 'positive' if x > 0.1 else 'neutral'))['senti'].count()https://stackoverflow.com/questions/42907842
复制相似问题