import statistics

data = [41, 65, 64, 50, 45, 13, 29, 14, 7, 14]

print(statistics.mean(data))
print(statistics.median(data))
print(statistics.mode(data))

###

import csv
def readData(filename):
    f = open(filename, "r")
    # Semester, 3 orig, 3 cleaned, 3 categories
    data = list(csv.reader(f))
    return data

data = readData("all-icecream.csv")

def getFlavorCounts(data, flavor):
    countList = []
    catIndex = data[0].index("#1 category")
    for i in range(1, len(data)):
        catFlavors = data[i][catIndex:catIndex+3]
        entryCount = catFlavors.count(flavor)
        countList.append(entryCount)
    return countList

print(statistics.mean(getFlavorCounts(data, "chocolate")))

###

# Prob flavorA is #2 given that flavorB is #1
def getCondProb(data, flavorA, flavorB):
    secondFlavors = []
    catIndex = data[0].index("#1 category")
    for i in range(1, len(data)):
        if data[i][catIndex] == flavorB:
            secondFlavors.append(data[i][catIndex+1])
    return secondFlavors.count(flavorA) / len(secondFlavors)

print(getCondProb(data, "chocolate", "vanilla"))
print(getCondProb(data, "chocolate", "cookie"))

###

import matplotlib.pyplot as plt

x = [2, 4, 5, 7, 7, 9]
y = [3, 5, 4, 6, 9, 7]

plt.scatter(x, y)
plt.show()

###

d = {}
catIndex = data[0].index("#1 category")
for i in range(1, len(data)):
    fav = data[i][catIndex]
    if fav in d:
        d[fav] = d[fav] + 1
    else:
        d[fav] = 1

counts = []
flavors = []
for flavor in d:
    print(flavor, d[flavor])
    counts.append(d[flavor])
    flavors.append(flavor)

plt.pie(counts, labels=flavors)
plt.show()