Table widget in Supervisely allows for displaying and manipulating data in a table format.
It supports data in the Pandas DataFrame format or a Python dictionary with a specific structure.
The Table widget allows searching, sorting by column and direction, and the ability to download or customize data before downloading. It also allows for the creation of buttons in table cells and updating table data in real-time through Python code.
{
"columns": ["col_name_1", "col_name_2", ...],
"data": [
["row_1_column_1", "row_1_column_2", ...],
["row_2_column_1", "row_2_column_2", ...],
...
]
}
# prepare data for table
a = list(range(1, 11))
b = list(range(1, 5))
data = []
for row in b:
temp = [round(row * number, 1) for number in a]
data.append(temp)
a = [str(i) for i in a]
b = [str(i) for i in b]
data = pd.DataFrame(data=data, index=b, columns=a)
table = Table(data=df)
columns = [f"Col#{i}" for i in range(1, 11)]
data = pd.DataFrame(data=data, index=b, columns=columns)
table = Table(data=df)
table = Table(data=df, fixed_cols=2)
table = Table(data=df, per_page=4)
table = Table(data=df, width="200px")
table = Table(data=df, sort_column_id=2)
table = Table(data=df, sort_direction="desc")
import os
import pandas as pd
import supervisely as sly
from dotenv import load_dotenv
from supervisely.app.widgets import Card, Container, Table
load_dotenv("local.env")
load_dotenv(os.path.expanduser("~/supervisely.env"))
api = sly.Api()
def multiplication_table():
a = list(range(1, 11))
b = list(range(1, 6))
data = []
for row in b:
temp = [round(row * number, 1) for number in a]
temp[-1] = sly.app.widgets.Table.create_button("Delete row")
data.append(temp)
a = [f"Col#{str(i)}" for i in a]
b = [str(i) for i in b]
return pd.DataFrame(data=data, index=b, columns=a)