Как можно показать различное количество десятичных знаков в одном столбце в Python - PullRequest
2 голосов
/ 05 марта 2020

Я пытаюсь получить другое количество десятичных знаков в одном столбце в pandas кадре данных. Я округлил значения в соответствующих столбцах до нужного количества знаков после запятой, однако весь столбец показывает максимальное количество знаков после запятой.

Например, у меня есть этот кадр данных:

df = pd.DataFrame({'Column Name':[1005, 100.5, 10.05, 1.005]})

1005.000
100.500
10.050
1.005

Принимая во внимание, что я хочу, чтобы это было как:

1005
100.5
10.05
1.005

Как это возможно?

Ответы [ 2 ]

1 голос
/ 05 марта 2020

Просто установите dtype на object, чтобы целое число 1005 оставалось целым (в противном случае все значения автоматически конвертируются в float64):

df = pd.DataFrame({'Column Name':[1005, 100.5, 10.05, 1.005]}, dtype='O')

df
Out[33]: 
  Column Name
0        1005
1       100.5
2       10.05
3       1.005
0 голосов
/ 05 марта 2020

Одно из возможных решений:

df['Column Name'].astype(str).str.extract(r'(\d{4}|.{5})')

Обратите внимание, что группа захвата в шаблоне не имеет имени, поэтому результирующий столбец имеет имя == 0 . Если вы хотите, чтобы у этого столбца было какое-то значимое имя, используйте взамен с именем группу захвата, например:

df['Column Name'].astype(str).str.extract(r'(?P<Number>\d{4}|.{5})')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...