熊猫在几行中的特定列中找到最小值

时间:2018-09-10 06:52:07

标签: python python-3.x pandas dataframe

所以我有这个数据框(只显示了一部分)


    name    CEMS    emit    consent
    Ht      CEMS-4  61      50
    Ht      CEMS-5  33.75   50
    Ld      CEMS-1  21.625  100
    Sh      CEMS-3  71.4    100

现在,我要做的是找到发射的平均值,然后从特定的CEMS的同意中减去它。

我在做什么


    mod = df.consent.iloc[0]
    eMean = df['emit'].mean()
    eMean = ("%.2f" % eMean)
    diff1 = eMean - mod
    diff = float(diff1)/float(mod)

我收到此错误


    diff1 = eMean - mod
    TypeError: ufunc 'subtract' did not contain a loop with signature matching types dtype('S21') dtype('S21') dtype('S21')

请帮助我

1 个答案:

答案 0 :(得分:1)

我认为需要删除eMean中变量eMean = ("%.2f" % eMean)的赋值,并在必要时将值强制转换为浮点数:

mod = float(df.consent.iloc[0])
eMean = df['emit'].astype(float).mean()
print ("%.2f" % eMean)
diff1 = eMean - mod
diff = diff1 / mod