laverdes commited on
Commit
37ccd3e
1 Parent(s): 6b4ef55

feat: add calculated field

Browse files
Files changed (1) hide show
  1. app.py +18 -6
app.py CHANGED
@@ -17,7 +17,7 @@ with st.sidebar:
17
  st.text("\n".join(file_names))
18
 
19
  data_dict = dict({'trial_id':[], 'pupil_dilation':[], 'baseline':[], 'rating':[]})
20
- with st.spinner("building base dictionary..."):
21
  for file_data in file_bytes:
22
  data = json.loads(file_data)
23
  for k in data:
@@ -28,7 +28,7 @@ with st.spinner("building base dictionary..."):
28
  df_base = pd.DataFrame() # {'<fields>' : []})
29
  with col1:
30
  if file_bytes:
31
- with st.spinner("building base dataframe..."):
32
  df_base = pd.DataFrame.from_dict(data_dict)
33
  df_base["trial_id"] = df_base.trial_id.map(lambda s: "".join([c for c in s if c.isdigit()]))
34
  df_base["len_pupil_dilation"] = df_base.pupil_dilation.map(lambda l: len(l))
@@ -69,14 +69,26 @@ with col2:
69
  df_right = st.session_state.df.copy(deep=True)
70
  df_right.pupil_dilation = df_right.pupil_dilation.map(lambda ser: [f for f in ser if f != 0.0])
71
  df_right.baseline = df_right.baseline.map(lambda ser: [f for f in ser if f != 0.0])
72
- st.success("blinking values have been removed!")
73
  st.markdown("After transformation")
74
- st.dataframe(df_right)
 
 
 
 
 
 
 
 
 
 
 
 
75
  elif detect_blinking and not number_of_blinks:
76
- st.caption("no blinking values were found in your data!")
77
 
78
  if not df_base.empty:
79
- st.warning("consider running outlier detection to clean your data!", icon="⚠️")
80
 
81
  # for key, value in st.session_state.items():
82
  # st.success(f"{key}: {value}")
 
17
  st.text("\n".join(file_names))
18
 
19
  data_dict = dict({'trial_id':[], 'pupil_dilation':[], 'baseline':[], 'rating':[]})
20
+ with st.spinner("Building base dictionary..."):
21
  for file_data in file_bytes:
22
  data = json.loads(file_data)
23
  for k in data:
 
28
  df_base = pd.DataFrame() # {'<fields>' : []})
29
  with col1:
30
  if file_bytes:
31
+ with st.spinner("Building base dataframe..."):
32
  df_base = pd.DataFrame.from_dict(data_dict)
33
  df_base["trial_id"] = df_base.trial_id.map(lambda s: "".join([c for c in s if c.isdigit()]))
34
  df_base["len_pupil_dilation"] = df_base.pupil_dilation.map(lambda l: len(l))
 
69
  df_right = st.session_state.df.copy(deep=True)
70
  df_right.pupil_dilation = df_right.pupil_dilation.map(lambda ser: [f for f in ser if f != 0.0])
71
  df_right.baseline = df_right.baseline.map(lambda ser: [f for f in ser if f != 0.0])
72
+ st.success("Blinking values have been removed!")
73
  st.markdown("After transformation")
74
+ # st.dataframe(df_right)
75
+ if "baseline" in list(df_right.keys()):
76
+ st.markdown(f"A **baseline** feature has been found on your data, do you want to merge it with **{[k for k in list(df_right.keys()) if k != "baseline"]}** with in a new calculated field?")
77
+ relative_key = f"relative_{[k for k in list(df_right.keys()) if k != "baseline"][0]}"
78
+ add_relative = st.button(f"Add {relative_key}")
79
+ if add_relative:
80
+ baseline_mean = [sum(s)/len(s) for s in df['baseline']]
81
+ df_right['relative_pupil_dilation'] = [df['pupil_dilation'][i] - baseline_mean[i] for i in range(len(df))]
82
+ st.markdown("After adding calculated fields")
83
+ st.dataframe(df_right)
84
+ with open('myfile.csv') as f:
85
+ st.download_button('Download CSV', f)
86
+ st.info("Your data has been downloaded, you can visualize and detect outliers in the 'Plotting' and 'Detect Outliers' pages on the sidebar.")
87
  elif detect_blinking and not number_of_blinks:
88
+ st.caption("No blinking values were found in your data!")
89
 
90
  if not df_base.empty:
91
+ st.warning("Consider running outlier detection to clean your data!", icon="⚠️")
92
 
93
  # for key, value in st.session_state.items():
94
  # st.success(f"{key}: {value}")