Mam dane szeregów czasowych w następującym formacie, w którym wartość wskazuje skumulowaną kwotę od czasu poprzedniego zapisu. Co chcę zrobić jest „spread” to zgromadzoną ilość w ciągu ostatnich okresach zawierających NaN tak że tego wejścia:Pandowy idiomatyczny sposób na wypełnienie niestandardowe
s = pd.Series([0, 0, np.nan, np.nan, 75, np.nan, np.nan, np.nan, np.nan, 50],
pd.date_range(start="Jan 1 2016", end="Jan 10 2016", freq='D'))
2016-01-01 0.0
2016-01-02 0.0
2016-01-03 NaN
2016-01-04 NaN
2016-01-05 75.0
2016-01-06 NaN
2016-01-07 NaN
2016-01-08 NaN
2016-01-09 NaN
2016-01-10 50.0
Staje się to wyjście:
2016-01-01 0.0
2016-01-02 0.0
2016-01-03 25.0
2016-01-04 25.0
2016-01-05 25.0
2016-01-06 10.0
2016-01-07 10.0
2016-01-08 10.0
2016-01-09 10.0
2016-01-10 10.0
Czy istnieje idiomatyczne Pandy sposobem, aby to zrobić zamiast po prostu wykonać pętlę dla danych? Próbowałem różnych rzeczy związanych z fillna
, dropna
, isnull
, robi shift
, aby sprawdzić kolejną wartość, itp., Ale nie widzę, jak umieścić kawałki razem.
Interesujące pytanie. Nie sądzę, że jest wbudowany sposób i, niestety, być może będziesz musiał zakończyć pętlę. –