首页 > 解决方案 > Python 分工很多?为什么?

问题描述

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

        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]

标签: pythonpandasdataframe

解决方案


你们完全正确,我忘了我只是显示到小数点后第二位。我以为幕后发生了一些奇怪的数学问题。它给出的答案是正确的,谢谢大家。


推荐阅读