我有一个执行以下操作的数据框:
df:
ColA ColB ColC
2.7E-16 7.9E-08 1.3E-16
5.4E-19 2.2E-02 4.5E-18
我没有“置信度”列需要四舍五入。
输出如下:
ColA ColB ColC Confidence %
2.7E-16 7.9E-08 1.3E-16 1.0
5.4E-19 2.2E-02 4.5E-18 1.0
我希望输入输出看起来像这样:
ColA ColB ColC Confidence %
2.7E-16 7.9E-08 1.3E-16 99.999990
5.4E-19 2.2E-02 4.5E-18 99.9999000
代码:
pd.set_option("display.precision", 15)
pval_dataframe['Confidence %'] = pval_dataframe.min(axis=1).apply(lambda x: 1- x )
答案 0 :(得分:0)
我希望这会对您有所帮助。
a = ["2.7E-16","5.4E-19"]
b = ["7.9E-08","2.2E-02"]
c = ["1.3E-16","4.5E-18"]
pval_dataframe = pd.DataFrame(data={"ColA":a,"ColB":b,"ColC":c})
pval_dataframe = pval_dataframe.astype(float)
pd.set_option("display.precision", 15)
我尝试过的是:
pval_dataframe['Confidence %'] = pval_dataframe.min(axis=1).apply(lambda x : format(float(1-x),'.30g'))
阅读format函数的文档
答案 1 :(得分:0)
我似乎可以使用Decimal
from decimal import Decimal
df['Confidence %'] = df.min(1).apply(lambda x: 1 - Decimal(x))
ColA ColB ColC Confidence %
0 2.700000e-16 7.900000e-08 1.300000e-16 0.9999999999999998700000000000
1 5.400000e-19 2.200000e-02 4.500000e-18 0.9999999999999999994600000000