Skip to content

Instantly share code, notes, and snippets.

@cwebber314
Created June 26, 2025 22:42
Show Gist options
  • Select an option

  • Save cwebber314/4b789fbfb478e295daba9b4f409536b1 to your computer and use it in GitHub Desktop.

Select an option

Save cwebber314/4b789fbfb478e295daba9b4f409536b1 to your computer and use it in GitHub Desktop.
Example of a simple app with panel
"""Panel demo
Install panel
pip install panel
Run the app:
panel serve app.py --dev
"""
import pandas as pd
import panel as pn
pn.extension(design='material')
# pn.extension()
intro = """\
# Simple Data Compare
Example app to compare data from two sources
"""
df1 = pd.DataFrame(
[
('Mars', 'Phobps', 3.14),
('Mars', 'Deimos', 1.59),
('Jupiter', 'Io', 23.0),
('Jupiter', 'Europa', 42),
('Jupiter', 'Callisto', 32),
],
columns=['planet', 'moon', 'size']
)
df2 = pd.DataFrame(
[
('Mars', 'Phobps', 5.15),
('Mars', 'Deimos', 1.59),
('Jupiter', 'Io', 42.0),
('Jupiter', 'Callisto', 32),
],
columns=['planet', 'moon', 'size']
)
# planets = df1['planet'].drop_duplicates().to_list()
planets = ['Mars', 'Jupiter']
autocomplete = pn.widgets.AutocompleteInput(
name='Planet', options=planets,
case_sensitive=False, search_strategy='includes',
placeholder='Select a Planet', min_characters=0)
markdown = pn.pane.Markdown(intro, styles={'flex': '3 1 auto'})
dataframe_1 = pn.pane.DataFrame(df1, styles={'flex': '3 1 auto'})
dataframe_2 = pn.pane.DataFrame(df2, styles={'flex': '3 1 auto'})
@pn.depends(autocomplete.param.value)
def get_df1(selected_planet):
filtered_df = df1[df1.planet == selected_planet]
return pn.pane.DataFrame(filtered_df)
@pn.depends(autocomplete.param.value)
def get_df2(selected_planet):
filtered_df = df2[df2.planet == selected_planet]
return pn.pane.DataFrame(filtered_df)
pn.Column(
markdown,
autocomplete,
pn.Row(get_df1, get_df2),
).servable()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment