Избегайте округления для определенных панд колонн - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть фрейм данных, где я выполнил операцию, такую ​​как:

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 )

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Похоже, вы можете использовать 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
0 голосов
/ 20 декабря 2018

Надеюсь, это поможет вам.

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'))

Прочитать документацию Формат Функция

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...