смещение данных в столбце условно с использованием панд

#python #pandas

Вопрос:

Допустим, у меня есть такой df

 index   shift   value
0         1       A
1         0       nan
2         0       A 
3         1       A
4         0       nan
5         0       nan
6         0       A
7         0       nan
 

после кода желаемый вывод выглядит следующим образом: только значение 1 при сдвиге перемещается вниз по строке

 index   shift   value
0         1       nan
1         0       A
2         0       A 
3         1       nan
4         0       A
5         0       nan
6         0       A
7         0       nan
 

1 в столбце сдвиг произойдет только в том случае, если в столбце значение указано значение nonna. Я думал об использовании shift(), но это приведет к смещению всего значения столбца вниз, а это не то, что я хочу.

Комментарии:

1. Вы предприняли попытку?

Ответ №1:

Попробуйте это:

 df['value'] = df.loc[np.arange(len(df)) - df['shift'].shift().fillna(0),'value'].to_numpy()
df['value'] = df['value'].where(df['shift'].eq(0))