2016-02-20 38 views
20

Nói rằng chúng tôi đã sử dụng gấu trúc dataframe[column].value_counts() mà kết quả đầu ra:giá trị Extract trong value_counts Pandas()

apple 5 
sausage 2 
banana 2 
cheese 1 

Làm thế nào để bạn trích xuất các giá trị từ này theo thứ tự hiển thị ở trên ví dụ tối đa đến phút? [apple,sausage,banana,cheese]

+0

Ông có thể vui lòng cung cấp một [MCVE] (http://stackoverflow.com/help/mcve)? Bạn đã sử dụng 'dataframe.value_counts()' hay 'series.value_counts()'? Loại dữ liệu nào bạn có đầu ra? – albert

+1

Lưu ý rằng đầu ra của 'value_counts()' là một chuỗi, vì vậy mọi phương thức chuỗi có thể được sử dụng, nhưng thường bạn chỉ lưu nó như là, tùy thuộc vào những gì bạn muốn làm với nó sau này. – JohnE

Trả lời

32

Hãy thử điều này:

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

Tuyệt vời! Trên một lưu ý khác, khi bạn in 'dataframe [column] .value_counts()' bạn nhận được một dtype ở phía dưới. Có cách nào để có được điều đó không? – JamesButterlips

+5

Thử: 'dataframe [column] .value_counts(). To_frame()' –

1

Trước tiên, bạn phải sort các dataframe bởi count cột max-min nếu nó không được sắp xếp theo cách đó rồi. Trong bài viết của bạn, đó là theo thứ tự đúng đã nhưng tôi sẽ sort nó anyways:

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

Sau đó, bạn có thể ra các col cột vào một danh sách:

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

Bây giờ, print(df['country'].value_counts()) cho :

France  3 
Germany  2 
UK   1 
Indonesia 1 

print(values) cung cấp:

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

print(counts) cho:

[3, 2, 1, 1] 
Các vấn đề liên quan