Из-за взаимоисключающего характера вашего выбора (5 против 6) индексы всех строк в Series1
отличаются от индексов всех строк в Series2
.Оператор +
использует выравнивание данных , чтобы найти совпадающие строки, и он не может.Таким образом, вместо этого он создает соответствующие макеты со значениями NaN
и добавляет их к значениям из вашей серии.(Результат также, конечно, равен NaN
.) Например, если у вас была строка # 10 в Series1
(со значением, скажем, 3.14), в * 1013 не будет строки с таким же номером.*.Панды создадут строку # 10 в Series2
и установят ее значение на NaN
, потому что она не знает ничего лучше.Результат суммирования в строке # 10 теперь равен 3.14+NaN=NaN
.
Это объясняет, почему ваш код неверен , но не обязательно, почему он медленный.Я предполагаю, что выравнивание данных является очень медленной операцией при наличии стольких пропущенных значений.
Вы имели в виду складывать Series1
и Series2
вместо их арифметического добавления?Если это так, вы должны сделать pd.concat[Stack1,Stack2])
.