Private
Public Access
1
0

bug fix and additional filtering for spm<0

This commit is contained in:
Sander Roosendaal
2018-03-02 10:37:24 +01:00
parent c1158747e3
commit 66452b44c0
4 changed files with 52 additions and 15 deletions

View File

@@ -263,6 +263,12 @@ def clean_df_stats(datadf, workstrokesonly=True, ignorehr=True,
pass
# protect 0 spm values from being nulled
try:
datadf['spm'] = datadf['spm'] + 1.0
except TypeError:
pass
try:
datadf = datadf.clip(lower=0)
except TypeError:
@@ -270,6 +276,11 @@ def clean_df_stats(datadf, workstrokesonly=True, ignorehr=True,
datadf.replace(to_replace=0, value=np.nan, inplace=True)
# bring spm back to real values
try:
datadf['spm'] = datadf['spm'] - 1
except TypeError:
pass
# return from positive domain to negative
try:
@@ -295,6 +306,12 @@ def clean_df_stats(datadf, workstrokesonly=True, ignorehr=True,
except KeyError:
pass
try:
mask = datadf['spm'] < 0
datadf.loc[mask,'spm'] = np.nan
except KeyError:
pass
try:
mask = datadf['efficiency'] > 200.
datadf.loc[mask, 'efficiency'] = np.nan
@@ -1614,6 +1631,7 @@ def getsmallrowdata_db(columns, ids=[], doclean=True, workstrokesonly=True):
if doclean:
data = clean_df_stats(data, ignorehr=True,
workstrokesonly=workstrokesonly)
data.dropna(inplace=True,axis=0)
return data

View File

@@ -2638,18 +2638,18 @@ def interactive_flex_chart2(id=0,promember=0,
rowdata = dataprep.getsmallrowdata_db(columns,ids=[id],doclean=True,
workstrokesonly=False)
workstrokesonly=False
try:
tests = rowdata[yparam2]
except KeyError:
yparam2 = 'None'
try:
tests = rowdata[yparam1]
except KeyError:
yparam1 = 'None'
rowdata.dropna(axis=1,how='all',inplace=True)
# test if we have drive energy
nowork = 1
@@ -2670,7 +2670,7 @@ def interactive_flex_chart2(id=0,promember=0,
row = Workout.objects.get(id=id)
if rowdata.empty:
return "","No valid data"
return "","No valid data",'','',workstrokesonly
else:
try:
rowdata.sort_values(by='time',ascending=True,inplace=True)
@@ -2690,7 +2690,7 @@ def interactive_flex_chart2(id=0,promember=0,
try:
tseconds = rowdata.ix[:,'time']
except KeyError:
return '','No time data - cannot make flex plot','',''
return '','No time data - cannot make flex plot','','',workstrokesonly
try:
@@ -3098,7 +3098,7 @@ def interactive_flex_chart2(id=0,promember=0,
try:
distmax = 100+100*int(rowdata['distance'].max()/100.)
except KeyError:
except (KeyError,ValueError):
distmax = 100
slider_dist_min = Slider(start=0,end=distmax,value=0,step=1,

View File

@@ -326,7 +326,10 @@ def wavg(group, avg_name, weight_name):
should return otherwise.
"""
d = group[avg_name]
w = group[weight_name]
try:
w = group[weight_name]
except KeyError:
return d.mean()
try:
return (d * w).sum() / w.sum()
except ZeroDivisionError:

View File

@@ -7446,7 +7446,6 @@ def workout_stats_view(request,id=0,message="",successmessage=""):
return HttpResponseRedirect(url)
datadf = dataprep.clean_df_stats(datadf,workstrokesonly=workstrokesonly)
datadf['deltat'] = datadf['time'].diff()
if datadf.empty:
datadf,row = dataprep.getrowdata_db(id=id)
@@ -7455,6 +7454,7 @@ def workout_stats_view(request,id=0,message="",successmessage=""):
if datadf.empty:
return HttpResponse("CSV data file not found")
datadf['deltat'] = datadf['time'].diff()
workoutstateswork = [1,4,5,8,9,6,7]
@@ -8069,15 +8069,31 @@ def workout_flexchart3_view(request,*args,**kwargs):
# create interactive plot
try:
script,div,js_resources,css_resources,workstrokesonly = interactive_flex_chart2(id,xparam=xparam,yparam1=yparam1,
yparam2=yparam2,
promember=promember,plottype=plottype,
workstrokesonly=workstrokesonly)
(
script,
div,
js_resources,
css_resources,
workstrokesonly
) = interactive_flex_chart2(
id,xparam=xparam,yparam1=yparam1,
yparam2=yparam2,
promember=promember,plottype=plottype,
workstrokesonly=workstrokesonly
)
except ValueError:
script,div = interactive_flex_chart2(id,xparam=xparam,yparam1=yparam1,
yparam2=yparam2,
promember=promember,plottype=plottype,
workstrokesonly=workstrokesonly)
(
script,
div,
js_resources,
css_resources,
workstrokesonly
) = interactive_flex_chart2(
id,xparam=xparam,yparam1=yparam1,
yparam2=yparam2,
promember=promember,plottype=plottype,
workstrokesonly=workstrokesonly
)
js_resources = ""
css_resources = ""