所以我有这个数据框(只显示了一部分)
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')
请帮助我
答案 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