2016-02-20 25 views
20

biz çıktılar panda dataframe[column].value_counts() kullandık ki en fazla min [apple,sausage,banana,cheese]Özü değerleri()

+0

Bir [MCVE] (http://stackoverflow.com/help/mcve) verebilir misiniz? 'Dataframe.value_counts()' veya 'series.value_counts()' kullandınız mı? Çıktınızda hangi veri türü var? – albert

+1

'value_counts()' çıktısının bir seri olduğunu unutmayın, bu nedenle herhangi bir seri yöntemi kullanılabilir, ancak genellikle daha sonra ne yapmak istediğinize bağlı olarak onu olduğu gibi kaydedersiniz. – JohnE

cevap

32

bu deneyin: Zaten bu şekilde sıralanmış değilse

dataframe[column].value_counts().index.tolist() 
['apple', 'sausage', 'banana', 'cheese'] 
+0

Harika! Başka bir notta, 'dataframe [column] .value_counts()' ı yazdırırken, altta bir dtype alırsınız. Bunu elde etmenin bir yolu var mı? – JamesButterlips

+5

Şunları deneyin: dataframe [column] .value_counts(). To_frame() ' –

1

Önce min için count sütuna max tarafından sortdataframe gerekiyor. Gönderinizde, zaten doğru sırayla ama Ben yine de sort olacaktır: Sonra

dataframe.sort_index(by='count', ascending=[False]) 
    col  count 
0 apple 5 
1 sausage 2 
2 banana 2 
3 cheese 1 

çıkış listeye col kolon edebilirsiniz: Artık

dataframe['col'].tolist() 
['apple', 'sausage', 'banana', 'cheese'] 
1
#!/usr/bin/env python 

import pandas as pd 

# Make example dataframe 
df = pd.DataFrame([(1, 'Germany'), 
        (2, 'France'), 
        (3, 'Indonesia'), 
        (4, 'France'), 
        (5, 'France'), 
        (6, 'Germany'), 
        (7, 'UK'), 
        ], 
        columns=['groupid', 'country'], 
        index=['a', 'b', 'c', 'd', 'e', 'f', 'g']) 

# What you're looking for 
values = df['country'].value_counts().keys().tolist() 
counts = df['country'].value_counts().tolist() 

, print(df['country'].value_counts()) verir :

ve print(values) verir:

['France', 'Germany', 'UK', 'Indonesia'] 

ve print(counts) verir:

[3, 2, 1, 1]