def read_workouts(file):
data = pd.read_csv(get_data_file(file))
return data
def append_data(data, file):
data2 = data.append(pd.read_csv(get_data_file(file)))
return data2
def cleanup_workouts(data):
data_clean = data.dropna(axis=1, how='all')
data_clean = data_clean[["WorkoutType", "WorkoutDay", "DistanceInMeters", "TimeTotalInHours",
"HeartRateAverage", "HeartRateMax", "IF", "TSS", "HRZone1Minutes", "HRZone2Minutes",
"HRZone3Minutes", "HRZone4Minutes", "HRZone5Minutes"]]
data_clean = data_clean.rename(columns={"WorkoutType":"Type", "WorkoutDay":"Date",
"DistanceInMeters":"Distance[km]",
"TimeTotalInHours":"time[h]", "HeartRateAverage":"HR_avg",
"HeartRateMax":"HR_max", "HRZone1Minutes":"Z1[min]",
"HRZone2Minutes":"Z2[min]", "HRZone3Minutes":"Z3[min]",
"HRZone4Minutes":"Z4[min]", "HRZone5Minutes":"Z5[min]"})
data_clean["Distance[km]"] = data_clean["Distance[km]"].map(lambda x: round(x / 1000, 2))
return data_clean
def sep_sports(data, sport_type):
sport = data.loc[data.Type.isin([sport_type])]
sport = sport.dropna(axis=0, how='any')
return sport
def pace(data):
data['Pace'] = data['time[h]']*60 / data['Distance[km]']
return data
def plotting(data, x, y1, y2):
data.set_index(x)[y1].plot(figsize=(30,8), legend=True)
data.set_index(x)[y2].plot(secondary_y=True, figsize=(30,8), legend=True)
return
def plot_scatter(data, x, y):
data.plot.scatter(x=x, y=y, figsize=(6,6))
return
def correlation(data):
corr = data.corr(method='pearson')
return corr.style.background_gradient(cmap='coolwarm').set_precision(2)