Skip to content

Commit c6d5ebe

Browse files
committed
fix key error stats, geojson functions handle null values
1 parent e6a898e commit c6d5ebe

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

mapswipe_workers/mapswipe_workers/generate_stats/project_stats.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,19 @@ def calc_results_progress(number_of_users, number_of_users_required, cum_number_
148148
def agg_results_by_task_id(results_df, tasks_df):
149149

150150
results_by_task_id_df = results_df.groupby(['project_id', 'group_id', 'task_id', 'result']).size().unstack(fill_value=0)
151+
152+
if 0 not in results_by_task_id_df.columns:
153+
results_by_task_id_df[0] = 0
154+
155+
if 1 not in results_by_task_id_df.columns:
156+
results_by_task_id_df[1] = 0
157+
158+
if 2 not in results_by_task_id_df.columns:
159+
results_by_task_id_df[2] = 0
160+
161+
if 3 not in results_by_task_id_df.columns:
162+
results_by_task_id_df[3] = 0
163+
151164
results_by_task_id_df['total_count'] = results_by_task_id_df[0] + results_by_task_id_df[1] + results_by_task_id_df[2] + results_by_task_id_df[3]
152165
results_by_task_id_df['0_share'] = results_by_task_id_df[0] / results_by_task_id_df['total_count']
153166
results_by_task_id_df['1_share'] = results_by_task_id_df[1] / results_by_task_id_df['total_count']

mapswipe_workers/mapswipe_workers/utils/geojson_functions.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ def cast_datatypes_for_geojson(filename):
3434
Go through geojson file and try to cast all values as float, except project_id
3535
remove redundant geometry property
3636
'''
37+
3738
filename = filename.replace('csv', 'geojson')
3839
with open(filename) as f:
3940
geojson_data = json.load(f)
@@ -48,6 +49,8 @@ def cast_datatypes_for_geojson(filename):
4849
elif property in ['geom']:
4950
# remove redundant geometry property
5051
del geojson_data['features'][i]['properties'][property]
52+
elif geojson_data['features'][i]['properties'][property] == '':
53+
del geojson_data['features'][i]['properties'][property]
5154
else:
5255
try:
5356
geojson_data['features'][i]['properties'][property] = float(geojson_data['features'][i]['properties'][property])

0 commit comments

Comments
 (0)