【问题标题】:How to add zeros after the decimal to make 2 digits after decimal in ipython and pyspark如何在小数点后添加零以在 ipython 和 pyspark 中生成小数点后 2 位
【发布时间】:2015-08-18 17:53:14
【问题描述】:

我在ipythonpyspark 中有一个数字列表,如下所示:

df = pd.DataFrame(index=range(N))
df['total'] = data.map(lambda x:(x.features[0]+x.features[1]+x.features[2])).collect()

现在这个列表中的一些数字在小数点后有两位数,如10.17,但有些数字在小数点后少于两位数,如9.1,或者有些没有小数点,如523。我想要的是让所有数字在小数点后两位数。如果它们没有两位数,则应添加结尾 0,如上面的 9.1 应变为 9.105 应变为 5.00。我该怎么做?

注意:我看到过重新格式化的帖子,但我的重新格式化是专门针对 pysparkmap() 函数。我如何在那里重新格式化?

【问题讨论】:

  • 而且它们必须存储为浮点数?
  • @Tim 我看到了那篇文章,但是我如何在这里使用 data.map() 语句来做到这一点。我不关心他们以这种格式存储。我只想展示它们。
  • 显示它们是什么意思?如果您需要固定精度的数字,您应该使用decimal。如果您只是想要特定的输出,您可以映射到具有特定格式的字符串。

标签: python apache-spark ipython pyspark


【解决方案1】:

地图 lambda 函数中不会显示。当 collect() 返回您的结果数组时,这些值将被具体化。然后将格式应用于这些结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-11
    • 2015-05-25
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多