Кадр данных панд. Изменить формат поплавка. Держите тип "плавать" - PullRequest
0 голосов
/ 26 января 2019

Я пытаюсь изменить формат столбца фрейма данных pd, не меняя тип данных. Вот что у меня есть: df = pd.DataFrame({'Age': [24.0, 32.0}])

Я бы хотел представить Age в 24 32 типе или 24.00 32.00 и оставить их как плавающие. Вот что я могу сделать:

df['Age'].map('{:,.2f}'.format)

Но эта строка меняет тип данных на объект. Я также пытался применить: `

df = df.style.format({'Age': '{:,.2f}'.format})`

но в этом что-то не так. Пожалуйста, помогите выяснить правильный путь.

1 Ответ

0 голосов
/ 26 января 2019

Ваши данные сами создают тип float.

Dataframe:

>>> df
    Age
0  24.0
1  32.0

Проверьте тип DataFrame:

>>> df.dtypes
Age    float64
dtype: object

проверьте dtype для типа столбца DataFrame:

>>> df.Age
0    24.0
1    32.0
Name: Age, dtype: float64

ИЛИ даже проверить как:

>>> df['Age'].dtype.kind
'f'

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

>>> df['Age'].map('{:,.2f}'.format)
0    24.00
1    32.00
Name: Age, dtype: object

Поскольку вас интересует сохранение имитаций типа int 24, 32 или 24.00 & 32.00, если вас интересует только отображение чисел с плавающей запятой, вы можете сделать pd.set_option('display.float_format','{:.0f}'.format), что на самом деле не влияет на ваши данные.

Для плавающего формата без начальных нулей

>>> pd.set_option('display.float_format','{:.0f}'.format)
>>> df
   Age
0   24
1   32

>>> df.dtypes
Age    float64
dtype: object

Для плавающего формата

>>> pd.set_option('display.float_format','{:.2f}'.format)
>>> df
    Age
0 24.00
1 32.00
>>> df.dtypes
Age    float64
dtype: object

Альтернативный способ

Установите параметр точности отображения:

>>> pd.set_option('precision', 0)
>>> df
   Age
0   24
1   32

>>> df.dtypes
Age    float64
dtype: object
...