Почему Pandas Series rolling конвертирует int во float?
Коллеги, столкнулся с непонятным поведением метода pandas.series.rolling
прошу пояснить. Для исследования возьмем вот такой искусственный код:
import pandas as pd
def rolling_print(x):
print(x)
return float('nan')
ser = pd.Series([1, 2, 3, 5, 6, 7, 8, 9])
print(ser)
ser.rolling(5).apply(rolling_print)
Поясню: берем pandas.series
из int
от 1 до 9, применяем к этой серии метод rolling
с окном 5 (неважно какое значение окна, я пробовал и с int
и с datetime
), и затем с помощью apply
вызываем функцию, для того, чтобы выводить данные из каждого окна. Так вот, при выводе становится видно, что данные превратились из int
во float
. То есть 1.0, 2.0...
и т.д. Почему? (Замена возвращаемых данных с float('nan')
на любую константу типа int
результат не изменила)