I am trying to read a CSV file and make some calculations based on the values in the file. The CSV file is structured like so:
data, 1666.00 +- 40.82
Higgs, 0.83 +- 0.70
MultiBoson, 4.34 +- 0.90
Top, 9.17 +- 1.32
Wjets, 56.59 +- 15.92
Zjets, 29.08 +- 14.38
This is what I tried to do:
import pandas as pd
import numpy as np
def getvalue(df,name):
data = df['point'].str.contains(name)
data_v = df[data]['mainvalue']
data_e = df[data]['error']
print(data_v,data_e)
return [data_v,data_e]
def getQCD(file="yiled.csv"):
df = pd.read_csv('yield.csv',header=None,sep=' ',names=["point",'mainvalue','sign','error'])
data1 = getvalue(df,"data")
higgs = getvalue(df,"Higgs")
zjets = getvalue(df,"Zjets")
wjets = getvalue(df,"Wjets")
top = getvalue(df,"Top")
multi_boson = getvalue(df,"MultiBoson")
QCD_v = data1[0] - higgs[0] - zjets[0] - wjets[0] - top[0] - multi_boson[0]
QCD_e = np.sqrt(data1[0] + pow(higgs[1],2)+ pow(zjets[1],2) + pow(wjets[1],2) + pow(top[1],2) + pow(multi_boson[1],2))
print("QCD: ",QCD_v," ",QCD_e)
getQCD()
AttributeError: 'float' object has no attribute 'sqrt'
Could you give me a hand?