Extract values in Pandas value_counts()
The best way to extract the values is to just do the following
json.loads(dataframe[column].value_counts().to_json())
This returns a dictionary which you can use like any other dict. Using values or keys.
{"apple": 5, "sausage": 2, "banana": 2, "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()
Now, print(df['country'].value_counts())
gives:
France 3
Germany 2
UK 1
Indonesia 1
and print(values)
gives:
['France', 'Germany', 'UK', 'Indonesia']
and print(counts)
gives:
[3, 2, 1, 1]
If anyone missed it out in the comments, try this:
dataframe[column].value_counts().to_frame()
Try this:
dataframe[column].value_counts().index.tolist()
['apple', 'sausage', 'banana', 'cheese']