indexes_for_zeroes = [] for i in range(len(features[-1])): last_col = features[-1] if last_col[i] == 0: indexes_for_zeroes.append(last_col[i]) for i in range(len(features[0])): if i in indexes_for_zeroes: continue valid_data = [] for j in range(len(features[-1])): if features[-1][j] != 0: valid_data.append(features[i][j]) median, st_dev = find_median_and_SD(features, i) print(f'Feature {i} Median: {median} Standard Deviation: {st_dev}')
This code gets an error for going out of range in the last for loop. What can I do to fix this?
# Lucas Conklin
# 5772707
import csv
import statistics
def readCSVIntoDictionary(f_name):
data = []
with open(f_name) as f:
reader = csv.reader(f)
for row in reader:
if not data:
for index in range(len(row)):
data.append([])
for index in range(len(row)):
data[index].append(float(row[index]))
f.close()
return data
features = readCSVIntoDictionary("C:\\Users\\lucas\\Downloads\\pima.csv")
print(features)
def find_median_and_SD(data, feature):
med = statistics.median(data[feature])
rounded_med = round(med, 4)
st_dev = statistics.stdev(data[feature])
rounded_st_dev = round(st_dev, 5)
return rounded_med, rounded_st_dev
for i in range(0, len(features)):
(median, st_dev) = find_median_and_SD(features, i)
print(f'Feature {i} Median: {median} Standard Deviation: {st_dev}')
indexes_for_zeroes = []
for i in range(len(features[-1])):
last_col = features[-1]
if last_col[i] == 0:
indexes_for_zeroes.append(last_col[i])
for i in range(len(features[0])):
if i in indexes_for_zeroes:
continue
valid_data = []
for j in range(len(features[-1])):
if features[-1][j] != 0:
valid_data.append(features[i][j])
median, st_dev = find_median_and_SD(features, i)
print(f'Feature {i} Median: {median} Standard Deviation: {st_dev}')
Trending now
This is a popular solution!
Step by step
Solved in 3 steps