Próbuję liczyć się kolejnych dni w danych powrotnej equity - więc jeśli dzień jest dodatnia i ujemna 1 wynosi 0, lista y=[0,0,1,1,1,0,0,1,0,1,1]
powinien powrócić z=[0,0,1,2,3,0,0,1,0,1,2]
.Liczenie rzędu wartość dodatnia w Pythonie tablicy
Doszedłem do roztworu, który jest czysty pod względem liczby linii kodu, ale jest bardzo powolny:
import pandas
y=pandas.Series([0,0,1,1,1,0,0,1,0,1,1])
def f(x):
return reduce(lambda a,b:reduce((a+b)*b,x)
z=pandas.expanding_apply(y,f)
zgaduję Ja zapętlenie całej listy y zbyt wiele razy. Czy istnieje przyjemny sposób Pythonic osiągnięcia tego, co chcę, podczas gdy tylko raz przechodzę przez dane? Mógłbym napisać pętlę samemu, ale zastanawiałem się, czy istnieje lepszy sposób.
Dzięki!
Czy potrzebujesz wyłącznie rozwiązania dla pand? –