Delete row from tabulator

import numpy as np
import panel as pn
import pandas as pd
import datetime as dt
pn.extension()

def append_data(follow=True):
    stream_df = pd.DataFrame(np.random.randn(10, 5), columns=list('ABCDE'))
    stream_table.stream(stream_df, follow=follow)

stream_df = pd.DataFrame(np.random.randn(10, 5), columns=list('ABCDE'))

stream_table = pn.widgets.Tabulator(stream_df, layout='fit_columns', width=450)
stream_table

How do I delete rows from tabulator? Above shows adding rows

1 Like

I don’t know of a dedicated, efficient method. But you can always replace the whole data frame.

Deleting one or more rows via an index would make sense as a Feature Request I think.

3 Likes

Here is an example of removing selected rows.

import panel as pn
import pandas as pd

frame1 = pd.DataFrame({"A": [1, 2, 3]})

table = pn.widgets.Tabulator(value=frame1)
button1 = pn.widgets.Button(name="Add row")
button2 = pn.widgets.Button(name="Remove selected rows")


def change_data(_):
    frame2 = pd.DataFrame({"A": [5]})
    table.stream(frame2)
    
def remove_selected_rows(_):
    table.value = table.value.drop(table.selection)


button1.on_click(change_data)
button2.on_click(remove_selected_rows)
pn.Column(pn.Row(button1,button2), table).servable()