【问题标题】:pandas Dataframe divide a column with a specific value and create new column with the result?pandas Dataframe 用特定值划分一列并用结果创建新列?
【发布时间】:2022-01-19 18:40:49
【问题描述】:
                            A                            B
0                          0.119                      5.344960e+08  
1                          0.008                      7.950629e+09  
2                        318.575                      1.996548e+05  
3                        153.644                      4.139767e+05  

    sum = 63605028.818
    df['B'] = df['A'].rdiv(sum).replace(np.inf, 0).round(3)

获取指数值(作为一个系列),我想要 B 列中的正常数值,例如 - 534496040.49 等。

【问题讨论】:

    标签: python pandas dataframe series


    【解决方案1】:

    你可以这样做:

    df['B'] = df['A'].rdiv(my_sum).replace(np.inf, 0).astype('int64')
    

    您还可以更改 pandas 的视图选项:

    pd.set_option('display.float_format', lambda x: '%.3f' % x)
    

    【讨论】:

    【解决方案2】:
    import pandas as pd
    pd.options.display.float_format = '{:,.3f}'.format
    

    设置float_format pandas 的选项/设置,它将以这种格式显示所有浮点数。您不需要明确地对每一列进行四舍五入。

    或者,使用map()

    df['B'] = df['A'].rdiv(sum).replace(np.inf, 0)
    df['B'] = df['B'].map(':,.3f'.format)
    

    【讨论】:

    猜你喜欢
    • 2022-07-29
    • 1970-01-01
    • 2012-11-12
    • 2016-06-09
    • 2019-11-06
    • 2023-01-17
    • 2017-06-20
    • 1970-01-01
    • 2020-12-20
    相关资源
    最近更新 更多