【问题标题】:Pandas rounding熊猫四舍五入
【发布时间】:2020-10-05 20:06:53
【问题描述】:

我有以下示例数据框:

Market Value
0  282024800.37
1  317460884.85
2 1260854026.24
3  320556927.27
4   42305412.79

我正在尝试将此数据框中的值四舍五入为最接近的整数。期望的输出:

Market Value

282024800
317460885
1260854026
320556927
42305413

我试过了:

df.values.round()

结果是

Market Value

282025000.00 
317461000.00 
1260850000.00 
320557000.00 
42305400.00 

我做错了什么?

谢谢

【问题讨论】:

    标签: pandas dataframe rounding


    【解决方案1】:

    这可能更适合作为评论发布,但请放在这里以获得正确的格式。

    我无法产生你的结果。使用 numpy 1.18.1 和 Pandas 1.1.0,

    df.round().astype('int')
    

    给我:

       Market Value
    0     282024800
    1     317460885
    2    1260854026
    3     320556927
    4      42305413
    

    我唯一能想到的是,你可能有一个 32 位系统,其中

    df.astype('float32').round().astype('int')
    

    给我

       Market Value
    0     282024800
    1     317460896
    2    1260854016
    3     320556928
    4      42305412
    

    【讨论】:

      【解决方案2】:

      以下内容将保持您的数据信息完整,因为 float put 将显示/打印到最近的 int。

      大警告:只能一次将其应用于所有数据帧(这是 pandas 范围的选项),而不仅仅是单个数据帧。

      pd.set_option("display.precision", 0)
      

      【讨论】:

        猜你喜欢
        • 2022-08-16
        • 1970-01-01
        • 1970-01-01
        • 2018-09-08
        • 1970-01-01
        • 2023-01-14
        • 2018-12-20
        • 1970-01-01
        • 2023-01-12
        相关资源
        最近更新 更多