Предельное значение с плавающей точкой в ​​течение l oop Python - PullRequest
0 голосов
/ 03 мая 2020

Я работаю над банковским проектом, где моя команда просит меня ограничить все значения с плавающей точкой с точностью до .2.

Мой dataSet.head ()

bank_stocks dataset

Цель: Найти максимум всех акций сравнительно

My code & error i got

Мой текущий результат:

Банк Тикер
BA C 54,900002
C 564.099976
GS 247,919998
JPM 70,080002
MS 89,300003
WF C 58,520000
dtype: float64

Мой ожидаемый результат:

Bank Ticker
BA C 54.90
C 564.10
GS 247.91
JPM 70.08
MS 89.30
WF C 58,52
dtype: float64

Пожалуйста, помогите мне с этим!

Ответы [ 5 ]

1 голос
/ 03 мая 2020

Вы неправильно используете "{: .2f}" в своем заявлении на печать, вы должны использовать .format() для форматирования вашего поплавка.

Вы можете использовать print("{:.2f}".format(some float)), чтобы напечатать число с 2 десятичные дроби как объяснено здесь .

1 голос
/ 03 мая 2020

Вы можете использовать pandas.Series.round метод

У меня есть игрушка DataFrame df:

l1        c1                           c2             
l2         a         b          c       a      b     c
0   0.066667  0.666667   6.666667  0.0002  0.002  0.02
1   0.133333  1.333333  13.333333  0.0004  0.004  0.04
2   0.200000  2.000000  20.000000  0.0006  0.006  0.06
3   0.266667  2.666667  26.666667  0.0008  0.008  0.08
df.xs('c', axis=1, level='l2').max().round(2)

Результаты в этом :

l1
c1    26.67
c2     0.08
dtype: float64

Полагаю, в вашем случае

res = bank_stocks.xs('Close', axis=1, level='Stock Info').max().round(2)

приведет к Series res, индексируемому тикерами с именем Bank Ticker и желаемыми значениями, округленными до 2 десятичных знаков мест.

Согласно этому ответу вы можете распечатать его с помощью

with pd.option_context('display.max_rows', None, 'display.max_columns', None):
    print(res)
0 голосов
/ 03 мая 2020

Это работает для меня, что является надежным, и без l oop

bank_stocks.xs(key='Close',axis=1,level='Stock Info').max().round(2)

O (n) ^ 2 теперь O (n)

0 голосов
/ 03 мая 2020

Я не очень продвинутый python программист, но мне это должно сработать:

{:.2f}.format(max())

, мягко говоря, напечатает 564.099976 как 564.09

0 голосов
/ 03 мая 2020

Это не чистое решение, но вы можете умножить максимальную цену акций на 100, затем разделить пол на 1 и затем разделить на 100.

Это решит ваши проблемы.

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