#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))