# How to count number of rows per group (and other statistics) in pandas group by?

I have a data frame `df`

and I use several columns from it to `groupby`

:

```
df['col1','col2','col3','col4'].groupby(['col1','col2']).mean()
```

In the above way I almost get the table (data frame) that I need. What is missing is an additional column that contains number of rows in each group. In other words, I have mean but I also would like to know how many number were used to get these means. For example in the first group there are 8 values and in the second one 10 and so on.

On `groupby`

object, the `agg`

function can take a list to apply several aggregation methods at once. This should give you the result you need:

```
df[['col1', 'col2', 'col3', 'col4']].groupby(['col1', 'col2']).agg(['mean', 'count'])
```

From: stackoverflow.com/q/19384532