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