Python被划分了很多?为什么?

Python被划分了很多?为什么?,python,pandas,dataframe,Python,Pandas,Dataframe,我想创建一个基于其他两个值的划分的值。这里,“案例与密度”(2462.461176)只是“案例”(81)除以“密度”(0.03)。结果应该是2700,但结果是2462.461176。 这些值由一个函数生成,该函数聚合来自多个数据帧的值,并从数据中创建一个列表。然后在for循环中使用它来创建这些列表的列表,然后我将其制作成一个数据帧。这里的索引是fips。我只是在玩弄免费的新冠病毒和人口数据 County State Population Cases D

我想创建一个基于其他两个值的划分的值。这里,“案例与密度”(2462.461176)只是“案例”(81)除以“密度”(0.03)。结果应该是2700,但结果是2462.461176。
这些值由一个函数生成,该函数聚合来自多个数据帧的值,并从数据中创建一个列表。然后在for循环中使用它来创建这些列表的列表,然后我将其制作成一个数据帧。这里的索引是fips。我只是在玩弄免费的新冠病毒和人口数据

        County          State   Population  Cases   Deaths  Population Density  Cases vs Density
fips                            
2290    Yukon-Koyukuk   Alaska  5230        81      1       0.03                2462.461176
案例与密度的定义如下:

cases_vs_density = cases / density
所以这里应该是这样的:

cases_vs_density = 81 / 0.03
为什么要这样做?如果我在解释器中这样做(x=81,y=0.03,r=x/r,print(r)),我会得到正确的值!为什么我在函数中运行它时只给出了错误的值?以下是函数:

def totaler(fips_id):
    value_list = county_covid[county_covid['fips'] == fips_id].iloc[-1:, :].values[0]
    county = value_list[1]
    state = value_list[2]
    fips = value_list[3]
    cases = value_list[4]
    deaths = value_list[5]
    land = county_land.loc[int(fips)].values[1]
    pop = county_pop[(county_pop.index == state) & (county_pop['CTYNAME'].str.contains(county))].values[0][1]
    density = pop / land
    cases_vs_density = cases / density
    return [int(fips), county, state, pop, cases, deaths, "{:.2f}".format(density), cases_vs_density]

你们完全正确,我忘了我只是显示到小数点后第二位。我以为有些奇怪的数学问题在幕后进行。它给出的答案是正确的,谢谢各位。

很明显,您的
密度不完全是
0.03
,您只是显示了前两个有效数字!在函数中打印案例值和密度,以查看它们是什么。这会有帮助。81/2462.461176=0.03289391962377075这就是密度的实际值is@superbrain,人口根本不参与此计算。不直接。他们计算了一些密度值(即人口/土地),但只在小数点后打印2个有效数字。因为我们没有土地,这是计算实际密度值的方法,我说“不直接”。如果我们知道土地和人口,我们可以检查实际密度不是0.03。但我们不知道土地。所以我们从最后开始工作。我们知道病例/密度是2462.461176,从那里我们可以通过将81除以2462.461176来计算密度。简单数学