Create a DynamicMap that responds to both a RadioButton, and generates a table when tapped

Consider the following code that creates a Points plot that changes which DataFrame it is plotting based on a RadioButton.

import pandas as pd
import panel as pn
import holoviews as hv

df_a = pd.DataFrame(index = ['a','b', 'c', 'd'], data = {'x':range(4), 'y':range(4)})
df_b = pd.DataFrame(index = ['w','x', 'y', 'z'], data = {'x':range(4), 'y':range(3,-1,-1)})

radio_button = pn.widgets.RadioButtonGroup(options=['df_a', 'df_b'])
@pn.depends(option = radio_button.param.value)
def update_plot(option):
    if option == 'df_a':
        points = hv.Points(data=df_a, kdims=['x', 'y'])
    if option == 'df_b':
        points = hv.Points(data=df_b, kdims=['x', 'y'])
    points = points.opts(size = 10, tools = ['tap'])
    return points

pn.Column(radio_button, hv.DynamicMap(update_plot))

What I would like to add is functionality where when one of the points is tapped, a table to the right is filled in with location information from the corresponding DataFrame (i.e. if the lower left point is tapped when “df_a” is selected, the data at df_a.loc['a'] should be printed in a table.

I’ve tried a few things, but can’t find a good way that 1. Updates the table on new clicks and 2. doesn’t reset the zoom level whenever the RadioButton selection is switched.

Number 2 is particularly important for my actual purpose (this is an extremely stripped down version).