Первая строка работает нормально, потому что в этот момент dataset.UpDown
, вероятно, int
-подобен (в частности, вероятно, int64
dtype, если я должен был угадать).Так что сравнение с 0
отлично работает.Но строка
dataset.UpDown[dataset.UpDown < 0] = 'Down'
также сделает некоторые элементы этого столбца str
и сделает столбец dtype object
.
Когда вы выполните второе сравнение, Pandas неТочно так же вы сравниваете элементы str
('Down') с целым числом.(0 >= 'x'
технически приемлем в чистом Python, но не разрешен Pandas.)
Вместо этого вы можете заменить обе строки просто:
dataset['UpDown'] = np.where(dataset.UpDown < 0, 'Down', 'Up')