在Python/Pandas中将数据帧条目转换为浮点

2024-04-29 11:48:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用Python3&;保存float变量中populatioEst列的值;熊猫, 我有下表:

^{tb1}$

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

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

然而,当我试图打印出值print(populationAM)时,我得到了这个输出

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

我认为人口是;populationNL不是int值,因为每当我尝试对它们运行一些算术运算时,都不会得到所需的值

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

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

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

0 Nan
1 Nan
Name: PopulationEst, dtype: float64

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


Tags: namenanfloatpython3ampdtypepopsastype
3条回答

这就是你要找的吗

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]检索序列第一个位置的值

也许你可以试试这个:

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

它将是dtype:Int。但是您可以很容易地将其转换为float

这就是你想做的吗

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

相关问题 更多 >