Я пытаюсь сместить столбец во фрейме данных, создав условный оператор, но не уверен, что делаю неправильно. В этом фрейме данных около 1000+ строк, но вот образец.
Исходный фрейм данных
Price Range str_num str_dir str str_sfx city zip
200 - 300k 123 Fake St Boulder 80304 None
300 - 400k 456 Main St Erie 80123 None
300 - 400k 789 E Lolly St Boulder 80302
300 - 400k 999 N Home Ave Lafayette 80027
Теперь я хочу сказать, если в столбце str_dir
нет N , E, W, S, сдвиньте вправо, остальное заполните NaN. Вот мой код на данный момент.
mylist = ['N','E','W','S']
a=df[~df['str_dir'].isin(mylist)].shift(periods=-1, axis='columns', fill_value=np.NaN)
out_df=a.combine_first(df)
Однако, когда я запускаю этот код, я получаю этот фрейм данных.
Price Range str_num str_dir str city zip
123 Fake St Boulder 80304 None
456 Main St Erie 80123 None
300 - 400k 789 E Lolly Boulder 80302
300 - 400k 999 N Home Lafayette 80027
Я ищу это
Price Range str_num str_dir str str_sfx city zip
200 - 300k 123 NaN Fake St Boulder 80304
300 - 400k 456 NaN Main St Erie 80123
300 - 400k 789 E Lolly St Boulder 80302
300 - 400k 999 N Home Ave Lafayette 80027