Supposons que nous avons utilisé dataframe[column].value_counts()
de pandas qui fournit:
Apple 5
sausage 2
banana 2
cheese 1
Comment en extrayez-vous les valeurs dans l'ordre indiqué ci-dessus, par ex. max à min? [Apple,sausage,banana,cheese]
Essaye ça:
dataframe[column].value_counts().index.tolist()
['Apple', 'sausage', 'banana', 'cheese']
#!/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()
Maintenant, print(df['country'].value_counts())
donne:
France 3
Germany 2
UK 1
Indonesia 1
et print(values)
donne:
['France', 'Germany', 'UK', 'Indonesia']
et print(counts)
donne:
[3, 2, 1, 1]
Si quelqu'un l'a manqué dans les commentaires, essayez ceci:
dataframe[column].value_counts().to_frame()
Tout d'abord, vous devez sort
la dataframe
par la count
colonne max
à min
si elle n'est pas déjà triée de cette façon. Dans votre message, il est déjà dans le bon ordre mais je vais sort
le faire quand même:
dataframe.sort_index(by='count', ascending=[False])
col count
0 Apple 5
1 sausage 2
2 banana 2
3 cheese 1
Vous pouvez ensuite sortir la colonne col
dans une liste:
dataframe['col'].tolist()
['Apple', 'sausage', 'banana', 'cheese']