如何用 Decimal 创建 Pandas 系列?

新手上路,请多包涵

我正在计算一些给出 FloatingPointErrors 的标准偏差。我想尝试将数据系列转换为十进制(使用 https://docs.python.org/3/library/decimal.html ),看看这是否解决了我的问题。

我似乎无法制作 decimal 的熊猫系列。

How can I take a normal pd.Series of float64 and convert to a pd.Series of decimal , such that I can do:

 Series.pct_change().ewm(span=35, min_periods=35).std()

原文由 cjm2671 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 886
1 个回答

这样的事情行得通吗?

 def column_round(decimals):
     return partial(Series.round, decimals=decimals)

df.apply(column_round(2))

或者让我们使用 np.vectorize 这样我们就可以使用 decimal.quantize 函数进行舍入,这会将变量保留为小数而不是 np.float64

 npquantize = np.vectorize(decimal.Decimal.quantize)

我一直在研究它,这似乎解决了 pct_change 的问题

ts.diff().div(ts.shift(1))

原文由 SerialDev 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题