为了账号安全,请及时绑定邮箱和手机立即绑定

我怎样才能得到负数百分比和最负数排序?

我怎样才能得到负数百分比和最负数排序?

胡子哥哥 2022-07-26 10:18:12
我想出了一种方法来进行分组并根据两个字段获取计数:df.groupby(['brand','result']).size()df.groupby(['brand','result']).count()这会产生相同的结果。我的数据现在看起来像这样。Johnson's Baby Powder   negative         21                          neutral          5                          positive         121Estee Lauder            negative         7                          positive         23Calvin Klein            negative         10                          neutral          3                          positive         29 我想得到每个品牌的结果百分比,就像这样。Johnson's Baby Powder   negative    21  0.142857143                        neutral     5   0.034013605                        positive    121 0.823129252Estee Lauder            negative    7   0.233333333                        positive    23  0.766666667Calvin Klein            negative    10  0.238095238                        neutral     3   0.071428571                        positive    29  0.69047619不过,最终,我只想显示“结果”负值 > 20% 的“品牌”。所以,我想看看这个(以及其他符合业务逻辑规则的品牌)。Estee Lauder            negative    7   0.233333333                        positive    23  0.766666667我怎样才能做到这一点?
查看完整描述

2 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

尝试


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')


查看完整回答
反对 回复 2022-07-26
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

添加到@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


查看完整回答
反对 回复 2022-07-26
  • 2 回答
  • 0 关注
  • 51 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信