import csv

f = open('iris.csv')
data = csv.reader(f)
header = next(data)
result =[]

#전체 데이터를 행별로 result 리스트에 저장
for row in data :
    result.append(row)
    #print(row)

#result에 저장된 값 중 꽃받침과 꽃잎의 길이, 너비 값을 숫자로 바꾸기
for i in result :
    for j in range(1,5) :
        i[j] = float(i[j])
    #print(i)


#꽃 종류별 데이터 저장하기
a = [] #Iris-setosa 정보를 저장할 리스트 만들기
b = [] #Iris-versicolor 정보를 저장할 리스트 만들기
c = [] #Iris-verginica 정보를 저장할 리스트 만들기

for i in result :
    if i[5]=='Iris-setosa' :
        a.append(i[0:5])
    if i[5]=='Iris-versicolor' :
        b.append(i[0:5])
    if i[5]=='Iris-virginica' :
        c.append(i[0:5])


#setosa의 꽃잎과 꽃받침 너비, 길이에 따른 평균값 구해보기
SL = [] #꽃받침 길이 값 저장할 리스트 만들기
SW = [] #꽃받침 너비 값 저장할 리스트 만들기
PL = [] #꽃잎 길이 값 저장할 리스트 만들기
PW = [] #꽃잎 너비 값 저장할 리스트 만들기

for i in a :
    SL.append(i[1])
    SW.append(i[2])
    PL.append(i[3])
    PW.append(i[4])
    
print('<Iris-setosa의 특성별 평균값>')
print('꽃받침 길이 평균:',round(sum(SL)/len(SL),3), '\n꽃받침 너비 평균:',round(sum(SW)/len(SW),3), '\n꽃잎 길이 평균:',round(sum(PL)/len(PL),3), '\n꽃잎 너비 평균:',round(sum(PW)/len(PW),3))


#setosa의 꽃잎과 꽃받침 너비, 길이에 따른 중앙값 구해보기
SL.sort()
SW.sort()
PL.sort()
PW.sort()
m = int(len(a)/2)

print('<Iris-setosa의 특성별 중앙값>')
print('꽃받침 길이 중앙값:',SL[m], '\n꽃받침 너비 중앙값:',SW[m], '\n꽃잎 길이 중앙값:',PL[m], '\n꽃잎 너비 중앙값:',PW[m])


#versicolor 의 꽃잎과 꽃받침 너비, 길이에 따른 평균값 구해보기
SL = [] #꽃받침 길이 값 저장할 리스트 만들기
SW = [] #꽃받침 너비 값 저장할 리스트 만들기
PL = [] #꽃잎 길이 값 저장할 리스트 만들기
PW = [] #꽃잎 너비 값 저장할 리스트 만들기

for i in b :
    SL.append(i[1])
    SW.append(i[2])
    PL.append(i[3])
    PW.append(i[4])
    
print('<Iris-versicolor의 특성별 평균값>')
print('꽃받침 길이 평균:',round(sum(SL)/len(SL),3), '\n꽃받침 너비 평균:',round(sum(SW)/len(SW),3), '\n꽃잎 길이 평균:',round(sum(PL)/len(PL),3), '\n꽃잎 너비 평균:',round(sum(PW)/len(PW),3))


#versicolor의 꽃잎과 꽃받침 너비, 길이에 따른 중앙값 구해보기
SL.sort()
SW.sort()
PL.sort()
PW.sort()
m = int(len(b)/2)

print('<Iris-versicolor의 특성별 중앙값>')
print('꽃받침 길이 중앙값:',SL[m], '\n꽃받침 너비 중앙값:',SW[m], '\n꽃잎 길이 중앙값:',PL[m], '\n꽃잎 너비 중앙값:',PW[m])


#verginica의 꽃잎과 꽃받침 너비, 길이에 따른 평균값 구해보기
SL = [] #꽃받침 길이 값 저장할 리스트 만들기
SW = [] #꽃받침 너비 값 저장할 리스트 만들기
PL = [] #꽃잎 길이 값 저장할 리스트 만들기
PW = [] #꽃잎 너비 값 저장할 리스트 만들기

for i in c :
    SL.append(i[1])
    SW.append(i[2])
    PL.append(i[3])
    PW.append(i[4])
    
print('<Iris-verginica의 특성별 평균값>')
print('꽃받침 길이 평균:',round(sum(SL)/len(SL),3), '\n꽃받침 너비 평균:',round(sum(SW)/len(SW),3), '\n꽃잎 길이 평균:',round(sum(PL)/len(PL),3), '\n꽃잎 너비 평균:',round(sum(PW)/len(PW),3))


#verginica의 꽃잎과 꽃받침 너비, 길이에 따른 중앙값 구해보기
SL.sort()
SW.sort()
PL.sort()
PW.sort()
m = int(len(c)/2)

print('<Iris-verginica의 특성별 중앙값>')
print('꽃받침 길이 중앙값:',SL[m], '\n꽃받침 너비 중앙값:',SW[m], '\n꽃잎 길이 중앙값:',PL[m], '\n꽃잎 너비 중앙값:',PW[m])






