Creating a frequency distribution table in Python

Viewed 812

I'm new to Python and Pandas, and i'm struggling to create a frequency distribution table form my df.

My dataframe is something like this:

Balances Weight
10 7
11 15
12 30
13 20
10 15
13 20

edit: The balance numbers are its respective ID

I need the frequency of each balance used (in this example, balance 10 would be 2 and so on) the min, max and mean of the measurements results.

I was to use df.groupby(['balances']) but how can i use the results form using df.groupby to creat a new table? Is that the way?

2 Answers

You don't need to use groupby, instead use Series.value_counts:

In [1619]: df.Balances.value_counts()
Out[1619]: 
10    2
13    2
11    1
12    1
Name: Balances, dtype: int64

To create another df, do this:

In [1628]: df1 = df.Balances.value_counts().reset_index(name='Frequency').rename(columns={'index':'Balances'})

In [1629]: df1
Out[1629]: 
   Balances  Frequency
0        10          2
1        13          2
2        11          1
3        12          1

df.groupby(['balances']).count() should solve what you're looking for

Related