Source code for webinterface.pages.base_pages.utils.general
from typing import Callable
import pandas as pd
import streamlit as st
# TOCHECK: not used?
[docs]
def filter_data_using_slider(
slider_id_uuid: str,
all_datapoints: pd.DataFrame,
filter_data_point: Callable,
) -> pd.DataFrame:
"""
Filter the data points based on the slider value.
Returns
-------
pandas.DataFrame
The filtered data points.
"""
if slider_id_uuid in st.session_state.keys():
return filter_data_point(
st.session_state[all_datapoints],
st.session_state[st.session_state[slider_id_uuid]],
)
[docs]
def clean_dataframe_for_export(data: pd.DataFrame) -> pd.DataFrame:
"""
Clean dataframe for CSV export by replacing newlines in text fields.
Parameters
----------
data : pd.DataFrame
The data to clean.
Returns
-------
pd.DataFrame
Cleaned dataframe with newlines and commas replaced.
"""
data_copy = data.copy()
for col in data_copy.select_dtypes(include=["object"]).columns:
data_copy[col] = data_copy[col].apply(
lambda x: str(x).replace("\n", " ").replace("\r", " ").replace(",", ";") if isinstance(x, str) else x
)
return data_copy