Jak mám vyplnit na hodnoty ve sloupci s průměrnou předchozí non-a na další non-na hodnotu pandy?

0

Otázka

Syrové tabulce:

Sloupec
5
nan
nan
15

Nové tabulky:

Sloupec
5
10
10
15
1

Nejlepší odpověď

1

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.

2021-11-24 02:34:19

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................