将数据框条目转换为 Python/Pandas 中的浮点数
Converting Data Frame entry to float in Python/Pandas
我正在尝试使用 Python3 & Pandas 将 populatioEst 列中的值保存在浮点变量中,
我有以下 table:
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
谁能告诉我哪里出错了,或者我怎样才能将这些值保存在简单的浮点变量中。
这是你想要做的吗?:
populationAM = pops[pops['pops.Name'] == 'Amsterdam']['populationEst']
populationNL = pops[pops['pops.Name'] == 'Netherlands']['populationEst']
这是您要找的吗?
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,而populationAM
和populationNL
是各自人口对应的整数(可以看到,这些变量的类型不是计算 frac
的正确值的问题)。在您的代码中,问题是 populationAM
和 populationNL
是 pandas 系列,而不是整数; iloc[0]
检索系列第一个位置的值。
也许你试试这个:
populationAM = pops['populationEst'][pops['Name'] == 'Amsterdam']
populationNL = pops['populationEst'][pops['Name'] == 'Netherlands']
它将是 dtype: Int。但是你可以很容易地将它变成浮动的。
我正在尝试使用 Python3 & Pandas 将 populatioEst 列中的值保存在浮点变量中, 我有以下 table:
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
谁能告诉我哪里出错了,或者我怎样才能将这些值保存在简单的浮点变量中。
这是你想要做的吗?:
populationAM = pops[pops['pops.Name'] == 'Amsterdam']['populationEst']
populationNL = pops[pops['pops.Name'] == 'Netherlands']['populationEst']
这是您要找的吗?
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,而populationAM
和populationNL
是各自人口对应的整数(可以看到,这些变量的类型不是计算 frac
的正确值的问题)。在您的代码中,问题是 populationAM
和 populationNL
是 pandas 系列,而不是整数; iloc[0]
检索系列第一个位置的值。
也许你试试这个:
populationAM = pops['populationEst'][pops['Name'] == 'Amsterdam']
populationNL = pops['populationEst'][pops['Name'] == 'Netherlands']
它将是 dtype: Int。但是你可以很容易地将它变成浮动的。