Витяг значень у Pandas value_counts ()


78

Скажімо, ми використовували панди, dataframe[column].value_counts()які виводять:

 apple   5 
 sausage 2
 banana  2
 cheese  1

Як витягувати значення в такому ж порядку, як показано вище, з максимуму на мінімум?

наприклад: [apple,sausage,banana,cheese]


1
Не могли б ви надати MCVE ? Ви користувались dataframe.value_counts()чи series.value_counts()? Який тип даних ви маєте на виході?
Альберт,

3
Зверніть увагу, що результат виведення value_counts()- це серія, тому можна використовувати будь-які методи серії, але часто ви просто зберігаєте їх як є, залежно від того, що ви хочете з ним робити пізніше.
JohnE

Відповіді:


108

Спробуйте це:

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

Чудово! Ще одна примітка: при друці dataframe[column].value_counts()ви отримуєте dtype внизу. Чи є спосіб цього не отримати?
JamesButterlips

24
Спробуйте:dataframe[column].value_counts().to_frame()
Майк Мюллер

1
ще один варіант .value_counts().indexі.value_counts().values
Арай Каряув

38
#!/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]

18

Якщо хтось пропустив це в коментарях, спробуйте наступне:

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

3

Найкращий спосіб отримати значення - просто виконати наступне

json.loads(dataframe[column].value_counts().to_json())

Це повертає словник, яким ви можете користуватися, як і будь-який інший дикт. Використання значень або ключів.

 {"apple": 5, "sausage": 2, "banana": 2, "cheese": 1}

sorted(dict, key=lambda key: -dict[key])
Андробін

2

По- перше , ви повинні в колонці з , якщо це не впорядкований , що шлях вже. У вашому дописі це вже в правильному порядку, але я все одно:sortdataframecountmaxminsort

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

-1

Код

train["label_Name"].value_counts().to_frame()

де: label_Name Середнє ім'я стовпця

результат (мій випадок): -

0    29720 
1     2242 
Name: label, dtype: int64
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.