# Calcule valores médios facilmente com Pandas mean()

A função `DataFrame.mean()` da Biblioteca Python Pandas é utilizada para **calcular o valor médio** ao longo de um ou mais eixos de um DataFrame. O Pandas `mean()` é fundamental para a análise de dados numéricos e pode fornecer informações muito valiosas sobre a sua distribuição.

## Sintaxe do Pandas `DataFrame.mean()`

A função`mean()` aceita **até três parâmetros** e segue uma sintaxe básica simples:

```python
DataFrame.mean(axis=None, skipna=True, numeric_only=None)
```

### Parâmetros relevantes

Com a ajuda de vários parâmetros, pode ajustar o comportamento da função Pandas `DataFrame.mean()` para se adequar às suas necessidades.

<table>
  <thead>
    <tr>
      <th><strong>Parâmetro</strong></th>
      <th><strong>Descrição</strong></th>
      <th><strong>Valor predefinido</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`axis`</td>
      <td>Determina se o cálculo é feito ao longo das linhas (`axis=0`) ou das colunas (`axis=1`)</td>
      <td>`0`</td>
    </tr>
    <tr>
      <td>`skipna`</td>
      <td>Se for `True`, os valores NaN são ignorados</td>
      <td>`True`</td>
    </tr>
    <tr>
      <td>`numeric_only`</td>
      <td>Se for `True`, apenas os dados numéricos são incluídos no cálculo</td>
      <td>`False`</td>
    </tr>
  </tbody>
</table>

## Aplicação da função `mean()` do Pandas

O Pandas `DataFrame.mean()` tem diversas aplicações.

### Calcular os valores médios de cada coluna

Nos exemplos a seguir, é utilizado um [DataFrame do Pandas](https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/dataframes-do-pandas-python/) com os seguintes dados:

```python
import pandas as pd
data = {
    'A': [1, 2, 3, 4],
    'B': [4, 5, 6, 7],
    'C': [7, 8, 9, 10]
}
df = pd.DataFrame(data)
print(df)
```

O DataFrame resultante seria o seguinte:

```none
A  B  C
0  1  4  7
1  2  5  8
2  3  6  9
3  4  7 10
```

Para calcular o valor médio de cada coluna, pode-se usar a função Pandas `mean()` com o parâmetro padrão `axis=0`:

```python
column_means = df.mean()
print(column_means)
```

Desta forma, calcula-se os valores médios de cada coluna (A, B e C) dividindo a soma dos elementos pelo número de elementos em cada coluna. Como resultado, obtém-se a seguinte série de Pandas:

```none
A    2.5
B    5.5
C    8.5
dtype: float64
```

### Calcular os valores médios de cada linha

Se, em vez disso, desejar calcular o valor médio de cada linha, basta alterar o parâmetro `axis` para 1:

```python
row_means = df.mean(axis=1)
print(row_means)
```

Os valores médios de cada linha são calculados utilizando `mean()` do Pandas, dividindo a soma dos elementos pelo número de elementos em cada linha. A chamada à função gera o seguinte resultado:

```none
0    4.0
1    5.0
2    6.0
3    7.0
dtype: float64
```

### Ignorar valores NaN

No exemplo seguinte, é utilizado um DataFrame diferente para conter alguns valores NaN:

```python
import pandas as pd
import numpy as np
data = {
    'A': [1, 2, np.nan, 4],
    'B': [4, np.nan, 6, 7],
    'C': [7, 8, 9, np.nan]
}
df = pd.DataFrame(data)
print(df)
```

O código anterior gera o seguinte DataFrame:

```none
A    B    C
0  1.0  4.0  7.0
1  2.0  NaN  8.0
2  NaN  6.0  9.0
3  4.0  7.0  NaN
```

Para calcular a média levando em consideração os valores NaN, utiliza-se o parâmetro `skipna`. O valor padrão é `True`, o que significa que o Pandas `mean()` ignora automaticamente os valores NaN. Por outro lado, se alterássemos o valor padrão para `skipna=False`, o cálculo da média de qualquer coluna que contivesse pelo menos um valor NaN resultaria em NaN para essa coluna.

```python
mean_with_nan = df.mean()
print(mean_with_nan)
```

A chamada para a função `mean()` do Pandas gera:

```none
A    2.333333
B    5.666667
C    8.000000
dtype: float64
```


This is a markdown version of: [https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/pandas-dataframemean-em-python/](https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/pandas-dataframemean-em-python/) for AI/LLM consumption.