Value_counts() öğesini yalnızca belirli değerler için nasıl kullanabilirim?

0

Soru

Binlerce üründen gelen yorumları içeren bir veri kümesinde markaya göre kaç tane olumlu yorum olduğunu çıkarmak istiyorum. Bu kodu kullandım ve olumlu ve olumlu olmayan geri bildirimlerin yüzdesini içeren bir tablo aldım. Markaya göre yalnızca olumlu eleştirilerin yüzdesini nasıl alabilirim? Sadece" True " sonuçlarının positive_review olmasını istiyorum. Teşekkürler!

df_reviews_ok.groupby("brand")["positive_review"].value_counts(normalize=True).mul(100).round(2)
brand                   positive_review
Belkin                  False               70.00
                        True                30.00
Bowers & Wilkins        False               67.65
                        True                32.35
Corsair                 False               75.22
                        True                24.78
Definitive Technology   False               68.29
                        True                31.71
Dell                    False               60.87
                        True                39.13
DreamWave               False              100.00
House of Marley         False              100.00
JBL                     False               58.43
                        True                41.57
Kicker                  True                66.67
                        False               33.33
Lenovo                  False               76.92
                        True                23.08
Logitech                False               75.75
                        True                24.25
MEE audio               False               53.80
                        True                46.20
Microsoft               False               67.86
                        True                32.14
Midland                 False               72.09
                        True                27.91
Motorola                False               72.92
                        True                27.08
Netgear                 False               72.30
                        True                27.70
Pny                     False               68.78
                        True                31.22
Power Acoustik          False              100.00
SVS                     False              100.00
Samsung                 False               61.94
                        True                38.06
Sanus                   False               75.93
                        True                24.07
Sdi Technologies, Inc.  False               55.63
                        True                44.37
Siriusxm                False               73.33
                        True                26.67
Sling Media             False               67.16
                        True                32.84
Sony                    False               55.40
                        True                44.60
Toshiba                 False               56.52
                        True                43.48
Ultimate Ears           False               70.21
                        True                29.79
Verizon Wireless        False               75.86
                        True                24.14
WD                      False               58.33
                        True                41.67
Yamaha                  False               61.15
                        True                38.85
Name: positive_review, dtype: float64
data-manipulation pandas python
2021-11-22 17:27:47
3

En iyi cevabı

5

Aşağıdaki oyuncağı kullanma DataFrame örnek olarak:

df = pd.DataFrame({
    'brand': list('AAAABBBB'),
    'positive': [True, True, False, False, True, True, True, False]
})

Her marka için, marka başına toplam inceleme sayısına göre olumlu eleştirilerin yüzdesini almak istiyorsanız, deneyin:

df.groupby('brand')['positive'].mean()

Sonuç beklendiği gibi:

brand
A    0.50
B    0.75
Name: positive, dtype: float64
2021-11-22 17:40:05
2

Yapabilirsin unstack çıktı ve dilim Doğru

(df.groupby('brand')
   ['positive_review'].value_counts(normalize=True)
   .mul(100).round(2)
   .unstack(fill_value=0)
   [True]
 )
2021-11-22 17:32:19

Sorunun sorduğu şey için oldukça hantal görünüyor
rudolfovic
-1

Kullanmaya ne dersin .reset_index() ifadeden sonra ve sonra bir koşul kullanarak.

2021-11-22 17:39:50

Bu yararlı olabilir. Gelecekteki okuyucuların rehberliğinizi takip edebilmesi için daha ayrıntılı bir açıklama ve muhtemelen biraz daha bağlamsal kod sunabilir misiniz?
Jeremy Caney

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................