I am looking for a solution to dynamically select two columns from a dataframe (using ipywidgets or steamlit for example) and create a new dataframe using that selection.
The aim is to allow a user to select two columns from a larger dataset to allow filtering of those two columns to remove NaNs for regression and plotting. I do not want to type every column header out as the dataframe will change for every use. Any help would be of much help!
import ipywidgets as widgets
import pandas as pd
df = pd.DataFrame({'A' : [4,NaN], 'B' : [10,20], 'C' : [100,50], 'D' : [-30,-50]})
x_choice = widgets.Dropdown(
options=list(df.select_dtypes('number').columns)[0:],
description='Number:',
disabled=False,
)
y_choice = widgets.Dropdown(
options=list(df.select_dtypes('number').columns)[1:],
description='Number:',
disabled=False,
)
dfX = pd.DataFrame(x_choice, y_choice)
dfX.dropna()