Snažím se vyplnit ve sloupci s čísly -5000 do 5004, šlápnutí do 4, mezi stavu v jednom sloupci a stav v jiném. Hrabě začíná, když start==1
. Hrabě nebude vždycky 5004
, takže se to musí zastavit, když end==1
Zde je příklad vstupu:
start end
1 0
0 0
0 0
0 0
0 0
0 1
0 0
0 0
1 0
0 0
Snažil jsem se np.arange
:
df['time'] = df['start'].apply(lambda x: np.arange(-5000,5004,4) if x==1 else 0)
To samozřejmě nebude fungovat - já jsem skončil s řadou v jedné buňce. Také jsem si pohrával s cycle
z itertools
, ale to nefunguje, protože vzdálenosti mezi začátek a konec nejsou vždy stejné. Také jsem pocit, že by mohl být způsob, jak to udělat s ffill
:
rise = df[df.start.where(df.start==1).ffill(limit=1250).notnull()]
Nejste si jisti, jak upravit, aby to zastavit na správné místo.
Byla bych ráda, lambda funkce, která dosahuje tento, ale nejsem si jistý, kam jít odsud.
Tady je můj očekávaný výstup:
start end time
1 0 -5000
0 0 -4996
0 0 -4992
0 0 -4988
0 0 -4984
0 1 -4980
0 0 nan
0 0 nan
1 0 -5000
0 0 -4996