Syrové tabulce:
Sloupec |
---|
5 |
nan |
nan |
15 |
Nové tabulky:
Sloupec |
---|
5 |
10 |
10 |
15 |
Syrové tabulce:
Sloupec |
---|
5 |
nan |
nan |
15 |
Nové tabulky:
Sloupec |
---|
5 |
10 |
10 |
15 |
Jednou z možností by mohlo být následující (za použití fillna
dvakrát (s možností ffill
a bfill
) a pak v průměru):
import pandas as pd
import numpy as np
df = pd.DataFrame({'x': [np.nan, 5, np.nan, np.nan, 15]})
filled_series = [df['x'].fillna(method=m) for m in ('ffill', 'bfill')]
print(pd.concat(filled_series, axis=1).mean(axis=1))
# 0 5.0
# 1 5.0
# 2 10.0
# 3 10.0
# 4 15.0
Jak můžete vidět, to funguje, i když nan
stane na začátku nebo na konci.