# Kuinka laskea keskiarvoja pandas mean() -funktiolla

Python pandas -kirjaston `DataFrame.mean()` käytetään **laskemaan keskiarvoja** yhden tai useamman DataFrame-akselin yli. Pandas `mean()` on välttämätön numeeristen tietojen analysoinnissa. Keskiarvojen laskemisen lisäksi se tarjoaa myös tietoa tietojen jakautumisesta.

## Mikä on syntaksi numerolle `DataFrame.mean()`?

Pandas `mean()` -funktio hyväksyy **enintään kolme parametria** ja sen syntaksi on seuraava:

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

### Mitä parametreja voidaan käyttää pandas `Dataframe.mean` kanssa?

Voit käyttää erilaisia parametreja pandas `DataFrame.mean()` toiminnan mukauttamiseen.

<table>
  <thead>
    <tr>
      <th><strong>Parametri</strong></th>
      <th><strong>Kuvaus</strong></th>
      <th><strong>Oletusarvo</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`axis`</td>
      <td>Määrittää, tehdäänkö laskenta rivien (`axis=0`) vai sarakkeiden (`axis=1`) perusteella.</td>
      <td>`0`</td>
    </tr>
    <tr>
      <td>`skipna`</td>
      <td>Jos asetetaan arvoon `True`, NaN-arvot ohitetaan.</td>
      <td>`True`</td>
    </tr>
    <tr>
      <td>`numeric_only`</td>
      <td>Jos asetetaan arvoon `True`, vain numeeriset tietotyypit sisällytetään laskelmaan.</td>
      <td>`False`</td>
    </tr>
  </tbody>
</table>

## Kuinka käyttää pandas `mean()`

Voit käyttää pandas `DataFrame.mean()` -funktiota sekä sarakkeisiin että riveihin.

### Sarakkeiden keskiarvojen laskeminen

Ensin luomme [pandas-tietokehyksen](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/python-pandas-dataframe/), joka sisältää numeerista dataa:

```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)
```

Tuloksena oleva DataFrame näyttää tältä:

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

Kunkin sarakkeen keskiarvon laskemiseen voit käyttää pandas `mean()` -funktiota. Oletusarvoisesti akseliparametri on asetettu arvoon 0, joka vastaa sarakkeita.

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

Yllä oleva koodi laskee kunkin sarakkeen (A, B ja C) keskiarvon laskemalla kyseisen sarakkeen elementtien summan ja jakamalla sen sarakkeen elementtien lukumäärällä. Tuloksena on seuraava pandas-sarja:

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

### Rivien keskiarvojen laskeminen

Jos haluat laskea rivien keskiarvon, aseta parametri `axis` arvoon 1:

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

Pandas `mean()` laskee rivien keskiarvot jakamalla rivin elementtien summan sen elementtien lukumäärällä. Yllä olevan funktion kutsuminen tuottaa seuraavan tuloksen:

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

### NaN-arvojen käsittely

Tässä esimerkissä käytämme erilaista DataFrame-taulukkoa, joka sisältää NaN-arvoja:

```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)
```

Yllä oleva koodi tuottaa seuraavan DataFrame-kehyksen:

```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
```

Sarakkeiden keskiarvoja laskettaessa parametri `skipna` määrittää, pitäisikö NaN-arvot sisällyttää vai jättää huomiotta. Oletusarvoisesti `skipna` on asetettu arvoon `True`, joten `df.mean()` jättää NaN-arvot automaattisesti huomiotta. Jos haluat sisällyttää NaN-arvot, sinun on lisättävä parametriksi `skipna=False`. Tällöin kaikki sarakkeet, joissa on vähintään yksi NaN-arvo, palauttavat keskiarvona NaN-arvon.

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

Kutsun `df.mean()` tulos on seuraava:

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


This is a markdown version of: [https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/python-pandas-dataframe-keskiarvo/](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/python-pandas-dataframe-keskiarvo/) for AI/LLM consumption.