Подтвердить что ты не робот

Извлечь значения в Pandas value_counts()

Скажем, мы использовали панд dataframe[column].value_counts(), который выводит:

 apple   5 
 sausage 2
 banana  2
 cheese  1

Как извлечь значения в порядке, указанном выше, от максимального к минимальному?

например: [apple,sausage,banana,cheese]

4b9b3361

Ответ 1

Попробуйте следующее:

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

Ответ 2

#!/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()) дает:

France       3
Germany      2
UK           1
Indonesia    1

и print(values) дает:

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

и print(counts) дает:

[3, 2, 1, 1]

Ответ 3

Если кто-то пропустил это в комментариях, попробуйте это:

dataframe[column].value_counts().to_frame()

Ответ 4

Сначала вы должны sort dataframe в столбце count max до min, если он уже не отсортирован таким образом. В вашем посте он уже в правильном порядке, но я все равно sort:

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

Затем вы можете вывести столбец col в список:

dataframe['col'].tolist()
['apple', 'sausage', 'banana', 'cheese']