Python 熊猫数据帧。更改浮点格式。“保持类型”;浮动;

Python 熊猫数据帧。更改浮点格式。“保持类型”;浮动;,python,pandas,decimal,rounding,precision,Python,Pandas,Decimal,Rounding,Precision,我正在尝试在不更改数据类型的情况下更改pd数据帧列的格式。 这里是我所拥有的:df=pd.DataFrame({'Age':[24.0,32.0}]) 我想用2432类型或24.0022.00来表示年龄,并将其作为浮动。 以下是我能做的: df['Age'].map('{:,.2f}'.format) 但此行将数据类型更改为object。 我还试图申请:` df = df.style.format({'Age': '{:,.2f}'.format})` 但这里面有点不对劲。请帮我找出正确的方

我正在尝试在不更改数据类型的情况下更改pd数据帧列的格式。 这里是我所拥有的:
df=pd.DataFrame({'Age':[24.0,32.0}])

我想用
2432
类型或
24.0022.00
来表示年龄,并将其作为浮动。 以下是我能做的:

df['Age'].map('{:,.2f}'.format)
但此行将数据类型更改为object。 我还试图申请:`

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

但这里面有点不对劲。请帮我找出正确的方法

数据帧本身是一个类型浮点

数据帧:

>>> df
    Age
0  24.0
1  32.0
检查数据帧类型:

>>> df.dtypes
Age    float64
dtype: object
检查数据帧列类型的数据类型:

>>> 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_选项('display.float_format','{.0f}.format)
,这实际上不会影响您的数据

用于不带前导零的浮点格式 用于浮动格式 替代方法 设置“显示精度”选项:

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

>>> df.dtypes
Age    float64
dtype: object

我相信使用df.round是最好的方法:

>>> df = pd.DataFrame({'Age': [24.0, 32.0]})
>>> df2 = df.round({'Ages': 2})
>>> print(df2.dtypes)
>>> df2
    Age
0   24.00
1   32.00

我要求两种方法:0.00和不带小数,但保留浮点类型。如果我没有弄错的话,格式是字符串方法。尝试使用圆点后数字的舍入法。i、 e round(age,2)或round(age,0)因此,当您执行
df.age
时,它本身必须是一个浮点。@LiorT,谢谢,我尝试df.age.round(2),但我又犯了一个错误。谢谢。因此,没有办法将这些浮点数保持为浮点数的.2f或.0f格式?@Jerry,请查看更新的答案,,希望这会有所帮助。非常感谢您的帮助!正是我想要的。
>>> pd.set_option('precision', 0)
>>> df
   Age
0   24
1   32

>>> df.dtypes
Age    float64
dtype: object
>>> df = pd.DataFrame({'Age': [24.0, 32.0]})
>>> df2 = df.round({'Ages': 2})
>>> print(df2.dtypes)
>>> df2
    Age
0   24.00
1   32.00