只是好奇为什么 Pandas Series 滚动窗口方法不保留原始系列的数据类型:
import numpy as np
import pandas as pd
x = pd.Series(np.ones(6), dtype='float32')
x.dtype, x.rolling(window=3).mean().dtype
输出:
(dtype('float32'), dtype('float64'))
x.rolling(window=3)
给你一个 pandas.core.window.rolling.Rolling
对象。 help(pandas.core.window.rolling.Rolling.mean)
包括注释:
Returns
-------
Series or DataFrame
Return type is the same as the original object with ``np.float64`` dtype.
这就是为什么。为什么它会做这样的事情,我不知道。也许这是一种避免失去精度的方法,因为您始终可以选择再次转换为 float32。