パンダのdataframe[column].value_counts()
を使用して、次を出力するとします。
Apple 5
sausage 2
banana 2
cheese 1
上記の順序でこれから値をどのように抽出しますか?最大から最小? [Apple,sausage,banana,cheese]
これを試して:
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()
現在、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]
誰かがコメントでそれを見逃した場合、これを試してください:
dataframe[column].value_counts().to_frame()
最初にsort
the 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']