【问题标题】:Why I get float when I changed it to integer [duplicate]为什么当我将其更改为整数时会浮动 [重复]
【发布时间】:2019-11-14 18:18:49
【问题描述】:

我正在编写一个函数来从浮点数更改为整数。现在,例如,如果值为 1.34,则代码​​返回 1.0 而不是 1。如何解决这个问题?

dataframe.iloc[:,i] = dataframe.iloc[:,i].apply(lambda x: int(x) if str(x) != 'nan' else x)

【问题讨论】:

  • 您的 datafame 的 dtype 可能是浮点类型。您不能将 int 类型存储在浮点数据框中。
  • 如果我从不添加 if else 子句,我可以得到 int 格式
  • 它可能会转换为最灵活的类型。 else 在数据框中留下一些浮点数(带有nan)值以及整数。

标签: python pandas


【解决方案1】:

这是因为NaNfloat

>>> type(np.nan)
<class 'float'>
>>> 

百万分之一的值是浮点数,而不是整个值是浮点数。

所以你可以使用:

df.iloc[:, i] = df.iloc[:, i].astype('Int64')

您可以使用Int64Int32Int16

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 2018-07-06
    • 2020-08-15
    • 1970-01-01
    • 2018-05-07
    相关资源
    最近更新 更多