如何用 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 许可协议

阅读 748
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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题