【问题标题】:I am expecting output as int, but getting float我期望输出为 int,但得到浮点数
【发布时间】:2022-07-25 18:00:44
【问题描述】:

我尝试从 python 中的数据框中创建一个名为“Years”的新列

我的代码是:

df['Years'] = df['Days']//365.

我想得到 int 形式的输出,所以我使用 '//' 但为什么我得到的输出在 float = 13.0

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    试试这个:

    df['Years'] = (df['Days']//365).astype('int32')
    

    【讨论】:

      【解决方案2】:

      实际数据类型对您来说重要吗? // 进行地板除法,但您的 Series 的数据类型仍然是浮点数。

      如果您真的想要整数,请转换系列。

      import pandas as pd
      
      df = pd.DataFrame({"days": [5303.0, 6604.1, 64202.2, 93.3]})
      df["years"] = (df["days"] // 365).astype(int)
      print(df.years)
      
      0     14
      1     18
      2    175
      3      0
      Name: years, dtype: int64
      

      【讨论】:

        猜你喜欢
        • 2016-12-02
        • 2017-06-26
        • 2020-08-05
        • 2022-01-24
        • 1970-01-01
        • 1970-01-01
        • 2021-04-16
        • 1970-01-01
        • 2018-06-25
        相关资源
        最近更新 更多