熊猫数据框。更改浮动格式。保持类型“浮动”

新手上路,请多包涵

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

我想在 24 32 类型或 24.00 32.00 中表示年龄并将它们保持为浮点数。这是我能做的:

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

但是这一行将数据类型更改为对象。我也在尝试申请:`

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

但其中有问题。请帮助找出正确的方法。

原文由 Jerry 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 340
2 个回答

您的 dataFrame 本身是一个 float 类型。

数据框:

 >>> df
    Age
0  24.0
1  32.0

检查 DataFrame 类型:

 >>> df.dtypes
Age    float64
dtype: object

检查 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, 3224.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

原文由 Karn Kumar 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果要应用于数据框的特定列

df["col_name"] = df["col_name"].apply(lambda x: format(float(x),".2f"))

原文由 Prarthan Ramesh 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题