我如何获得负数百分比和以大多数负数排序的顺序?

问题描述 投票:1回答:2

我想出了一种基于两个字段进行分组并获得计数的方法:

df.groupby(['brand','result']).size()
df.groupby(['brand','result']).count()

这将产生相同的结果。我的数据现在看起来像这样。

Johnson's Baby Powder   negative         21  
                        neutral          5  
                        positive         121

Estee Lauder            negative         7  
                        positive         23

Calvin Klein            negative         10  
                        neutral          3  
                        positive         29 

我想这样获得每个品牌的结果百分比。

Johnson's Baby Powder   negative    21  0.142857143
                        neutral     5   0.034013605
                        positive    121 0.823129252

Estee Lauder            negative    7   0.233333333
                        positive    23  0.766666667

Calvin Klein            negative    10  0.238095238
                        neutral     3   0.071428571
                        positive    29  0.69047619

不过,最终,我只想显示负有> 20%的“结果”的“品牌”。

所以,我想看看这个(以及其他符合业务逻辑规则的品牌)。

Estee Lauder            negative    7   0.233333333
                        positive    23  0.766666667

我该怎么做?

python python-3.x pandas pandas-groupby
2个回答
0
投票

添加到@Vishnudev的答案中,使用:

print(df[df.groupby(['brand'])['result'].value_counts(normalize=True).ge(0.5).tolist()])

输出:

          brand    result  number
3  Estee Lauder  negative       7
4  Estee Lauder  positive      23

0
投票

尝试

x = df.groupby(['brand'])['result'].value_counts(normalize=True)

样本数据输出

>>> y = x.loc[(x.index.get_level_values(1) == 'negative')]

>>> y[y>0.2]
airline         airline_sentiment
American        negative             0.710402
Delta           negative             0.429793
Southwest       negative             0.490083
US Airways      negative             0.776862
United          negative             0.688906
Virgin America  negative             0.359127
Name: airline_sentiment, dtype: float64

>>> y[y>0.2].index.get_level_values(0)
Index(['American', 'Delta', 'Southwest', 'US Airways', 'United',
       'Virgin America'],
      dtype='object', name='airline')
© www.soinside.com 2019 - 2024. All rights reserved.