python - 熊猫数据框。更改浮点格式。保持类型“浮动”
问题描述
我正在尝试在不更改数据类型的情况下更改 pd 数据框列的格式。这是我所拥有的:df = pd.DataFrame({'Age': [24.0, 32.0}])
我想以24 32
类型表示 Age 或24.00 32.00
将它们保留为浮点数。这是我能做的:
df['Age'].map('{:,.2f}'.format)
但是这一行将数据类型更改为对象。我也在尝试申请:`
df = df.style.format({'Age': '{:,.2f}'.format})`
但它有问题。请帮助找出正确的方法。
解决方案
您的 dataFrame 本身就是一个浮点类型。
数据框:
>>> df
Age
0 24.0
1 32.0
检查 DataFrame 类型:
>>> df.dtypes
Age float64
dtype: object
检查 DataFrame 列类型的 dtype:
>>> 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
推荐阅读
- .net-core - 对 IdentityBuilder 类型的引用声称它在 microsoft.aspnetcore.identity 中定义,但找不到
- excel - 为整个工作表运行“一次”循环
- html - AngularJS CheckBox 绑定问题,即使选中了模型值,也未选中复选框
- php - php 从表单提交中删除 URL
- python - TCL Expect脚本嵌入python变量
- r - 如何使用 st_read 从 kml 文件中获取 R 中的坐标
- java - GSON 到 JSON 的转换——长格式和简单日期格式“yyyy-MM-dd'T'HH:mm'Z'”
- ios - NSLock 在属性设置器中的使用
- javascript - ESLint 扩展 vs 插件 v2020
- angular - Angular 9 中用于修剪空白的自定义指令