Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get columns describe from group by

I'm interesting in get data describe from group by dataset of Pandas. The data refer to vacations taken by different people.

In addition, the number of places visited is stored in that city.

       City     Name   Places
0   Seattle    Alice   10
1   Seattle      Bob   11
2  Portland  Mallory   7
3   Seattle  Mallory   5
4   Memphis      Bob   6
5  Portland  Mallory   9
6   Memphis    Alice   1
7   Memphis    Alice   20
8   Seattle    Alice   14
9   Seattle      Bob   10

I want to get data from DataFrame.describe()

And the new dataframe should look like this.

Name    City   Count   Mean   Std   Min   25%   50%   75%   Max
Alice   Seattle    2   X      X     X     X     X     X     X
Alice   Memphis    2   X      X     X     X     X     X     X
Bob     Seattle    2   X      X     X     X     X     X     X
Bob     Memphis    1   X      X     X     X     X     X     X
Mallory Portland   2   X      X     X     X     X     X     X
Mallory Seattle    1   X      X     X     X     X     X     X

Thanks!

like image 329
Agu Aguilar Avatar asked Sep 02 '25 05:09

Agu Aguilar


1 Answers

I think you need groupby with describe, last reshape by unstack:

df = df.groupby(['Name','City'])['Places'].describe().unstack().reset_index()
print (df)
      Name      City  count  mean        std   min    25%   50%    75%   max
0    Alice   Memphis    2.0  10.5  13.435029   1.0   5.75  10.5  15.25  20.0
1    Alice   Seattle    2.0  12.0   2.828427  10.0  11.00  12.0  13.00  14.0
2      Bob   Memphis    1.0   6.0        NaN   6.0   6.00   6.0   6.00   6.0
3      Bob   Seattle    2.0  10.5   0.707107  10.0  10.25  10.5  10.75  11.0
4  Mallory  Portland    2.0   8.0   1.414214   7.0   7.50   8.0   8.50   9.0
5  Mallory   Seattle    1.0   5.0        NaN   5.0   5.00   5.0   5.00   5.0
like image 65
jezrael Avatar answered Sep 04 '25 19:09

jezrael