【问题标题】:Converting Data Frame entry to float in Python/Pandas在 Python/Pandas 中将数据框条目转换为浮点数
【发布时间】:2021-04-15 02:43:42
【问题描述】:

我正在尝试使用 Python3 和 Pandas 将 populatioEst 列中的值保存在浮点变量中, 我有下表:

Name populationEst
Amsterdam 872757
Netherlands 17407585

我尝试将两个值分开如下,

populationAM = pops['populationEst'][pops.Name == 'Amsterdam']
populationNL = pops['populationEst'][pops.Name == 'Netherlands']

但是,当我尝试打印出值时,print(populationAM),我得到了这个输出

0    872757
Name: PopulationEstimate2020-01-01, dtype: int64

我认为 populationAM 和 populationNL 不是 int 值,因为每当我尝试对它们运行一些算术运算时,我都没有得到想要的值。

例如,我尝试使用此公式计算 populationAM 与 populationNL 的比例

frac = populationAM.astype(float) * 100 / populationNL.astype(float)

我没有得到想要的输出应该是5,013659276,但我得到了这个:

0 Nan
1 Nan
Name: PopulationEst, dtype: float64

谁能告诉我这里哪里出错了,或者我如何将这些值保存在简单的浮点变量中。

【问题讨论】:

    标签: python pandas database dataframe data-science


    【解决方案1】:

    这就是你要找的东西吗?

    populationAM = pops.loc[pops.Name == 'Amsterdam', 'populationEst'].iloc[0]
    populationNL = pops.loc[pops.Name == 'Netherlands', 'populationEst'].iloc[0]
    frac = populationAM * 100 / populationNL
    

    这里frac的值是5.013659275539944,而populationAMpopulationNL是对应于各自种群的整数(如你所见,这些变量的类型不是计算正确值的问题frac)。在您的代码中,问题是 populationAMpopulationNL 是熊猫系列,而不是整数; iloc[0] 检索序列第一个位置的值。

    【讨论】:

      【解决方案2】:

      这是你想要做的吗?:

      populationAM = pops[pops['pops.Name'] == 'Amsterdam']['populationEst']
      populationNL = pops[pops['pops.Name'] == 'Netherlands']['populationEst']
      

      【讨论】:

      • 实际上不会将整行分开,这就像说:SELECT * FROM pops WHERE pops.Name == Amsterdam, 我所做的更像:SELECT populationEst FROM pops WHERE pops.Name == Amsterdam 因为 pops['populationEst'] 本身就是一个子数据框.
      【解决方案3】:

      也许你试试这个:

          populationAM = pops['populationEst'][pops['Name'] == 'Amsterdam']
          populationNL = pops['populationEst'][pops['Name'] == 'Netherlands']
      

      它将是 dtype: Int.但是您可以轻松地将其转换为浮动。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-07-13
        • 2014-02-13
        • 2023-04-08
        • 1970-01-01
        • 2014-08-19
        相关资源
        最近更新 更多