Jer*_*rry 4 python precision decimal rounding pandas
我正在尝试在不更改数据类型的情况下更改 pd 数据框列的格式。这是我所拥有的:df = pd.DataFrame({'Age': [24.0, 32.0}])
我想用24 32 类型表示年龄,或者24.00 32.00将它们保留为浮点数。这是我可以做的:
df['Age'].map('{:,.2f}'.format)
Run Code Online (Sandbox Code Playgroud)
但是这一行将数据类型更改为对象。我也在尝试申请:`
df = df.style.format({'Age': '{:,.2f}'.format})`
Run Code Online (Sandbox Code Playgroud)
但它有一些问题。请帮助找出正确的方法。
Kar*_*mar 10
您的 dataFrame 本身是一个类型浮点数。
数据框:
>>> df
Age
0 24.0
1 32.0
Run Code Online (Sandbox Code Playgroud)
检查数据帧类型:
>>> df.dtypes
Age float64
dtype: object
Run Code Online (Sandbox Code Playgroud)
检查 DataFrame 列类型的 dtype:
>>> df.Age
0 24.0
1 32.0
Name: Age, dtype: float64
Run Code Online (Sandbox Code Playgroud)
或者甚至检查:
>>> df['Age'].dtype.kind
'f'
Run Code Online (Sandbox Code Playgroud)
您用于四舍五入两位数零的方式是正确的,但将它们再次转换为浮点数将使它们保持在单个零中作为浮点数。
>>> df['Age'].map('{:,.2f}'.format)
0 24.00
1 32.00
Name: Age, dtype: object
Run Code Online (Sandbox Code Playgroud)
由于您有兴趣保持像 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
Run Code Online (Sandbox Code Playgroud)
>>> pd.set_option('display.float_format','{:.2f}'.format)
>>> df
Age
0 24.00
1 32.00
>>> df.dtypes
Age float64
dtype: object
Run Code Online (Sandbox Code Playgroud)
设置显示精度选项:
>>> pd.set_option('precision', 0)
>>> df
Age
0 24
1 32
>>> df.dtypes
Age float64
dtype: object
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15746 次 |
| 最近记录: |