Spaces:
Sleeping
Sleeping
File size: 1,934 Bytes
add142e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | import numpy as np
import pandas as pd
def sub_to_dict(file):
"""
Converts a submission file to a dict with predictions.
Args:
truths (str): Path to submission file.
Returns:
dict: Dictionary containing {study: predictions} pairs.
"""
sub = pd.read_csv(file)
sub['study'] = sub['row_id'].apply(lambda x: x.split('_')[0])
sub['tgt'] = sub['row_id'].apply(lambda x: x.split('_', 1)[-1])
cols = [
"spinal_canal_stenosis_l1_l2",
"spinal_canal_stenosis_l2_l3",
"spinal_canal_stenosis_l3_l4",
"spinal_canal_stenosis_l4_l5",
"spinal_canal_stenosis_l5_s1",
"left_neural_foraminal_narrowing_l1_l2",
"left_neural_foraminal_narrowing_l2_l3",
"left_neural_foraminal_narrowing_l3_l4",
"left_neural_foraminal_narrowing_l4_l5",
"left_neural_foraminal_narrowing_l5_s1",
"right_neural_foraminal_narrowing_l1_l2",
"right_neural_foraminal_narrowing_l2_l3",
"right_neural_foraminal_narrowing_l3_l4",
"right_neural_foraminal_narrowing_l4_l5",
"right_neural_foraminal_narrowing_l5_s1",
"left_subarticular_stenosis_l1_l2",
"left_subarticular_stenosis_l2_l3",
"left_subarticular_stenosis_l3_l4",
"left_subarticular_stenosis_l4_l5",
"left_subarticular_stenosis_l5_s1",
"right_subarticular_stenosis_l1_l2",
"right_subarticular_stenosis_l2_l3",
"right_subarticular_stenosis_l3_l4",
"right_subarticular_stenosis_l4_l5",
"right_subarticular_stenosis_l5_s1",
]
preds_dict = {}
for study, dfs in sub.groupby('study'):
# display(dfs)
dfs = dfs[["tgt", "normal_mild", "moderate", "severe"]].set_index("tgt")
preds = np.zeros((25, 3))
for i, c in enumerate(cols):
preds[i] = dfs.loc[c].values
preds_dict[int(study)] = preds
return preds_dict
|