繁体   English   中英

pandas Dataframe 用特定值划分列并用结果创建新列?

[英]pandas Dataframe divide a column with a specific value and create new column with the result?

                            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 等。

你可以这样做:

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

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

pd.set_option('display.float_format', lambda x: '%.3f' % x)
import pandas as pd
pd.options.display.float_format = '{:,.3f}'.format

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

或者,使用map()

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM