Взяв примерный кадр данных, как показано ниже:
train=pd.DataFrame({'Image':[1,2,3,2],'img_before_w':[np.nan, np.nan, np.nan,np.nan]})
print(train)
дает
Image img_before_w
0 1 NaN
1 2 NaN
2 3 NaN
3 2 NaN
Теперь, например, если вы хотите вставить пиксельные данные, когда train.Image == 2
, то этоможет быть достигнуто с помощью кода ниже:
mask = train.Image == 2 # contains True for desired rows
target_index=mask[mask==True].index # gives index of rows, wherever condition is met
train.loc[mask, 'img_before_w'] = pd.Series([[512,512]]*len(target_index), index=target_index) # inserts [512,512] array in rows wherever condition is met, in given column
Теперь, print(train)
дает, желаемый результат:
Image img_before_w
0 1 NaN
1 2 [512, 512]
2 3 NaN
3 2 [512, 512]