Lew*_*son 2 python group-by aggregate pandas pandas-groupby
在Python 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
Run Code Online (Sandbox Code Playgroud)
文本列基本上是对某事的描述或意见.我想得出关于数据集的平均情绪的一些结论,输出就像这样.
sentiment count
----------------
positive 2
neutral 1
negative 2
Run Code Online (Sandbox Code Playgroud)
我们将'senti'计为正数,负数或中性.
在满足以下条件时,情绪被计为每个组:
非常感谢提前
我用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
Run Code Online (Sandbox Code Playgroud)
正如@root所指出的,pd.value_counts在cut变量上给出了相同的解决方案.
pd.value_counts(cut, sort=False).rename_axis('senti').reset_index(name='count')
Run Code Online (Sandbox Code Playgroud)