from ipywidgets import *
import pandas
import requests, requests_cache
requests_cache.install_cache('frame')
from dataclasses import dataclass, field
import mimetypes
mimetypes = mimetypes.MimeTypes()
import IPython
import traitlets
@dataclass
class Explorer:
df: pandas.DataFrame = None
def __post_init__(self):
self.table = HTML()
self.rows = IntSlider(value=10, start=1, end=min(50, len(self.df)-10))
self.start = IntSlider(start=1, end=len(self.df)-self.rows.value)
traitlets.dlink((self.rows, 'value'), (self.table, 'value'),
lambda _: df.iloc[self.start.value: self.start.value+self.rows.value]._repr_html_())
traitlets.dlink((self.start, 'value'), (self.table, 'value'),
lambda _: df.iloc[self.start.value: self.start.value+self.rows.value]._repr_html_())
def _ipython_display_(self):
IPython.display.display(self.start, self.rows, self.table)
df = pandas.util.testing.makeDataFrame()
Explorer(df)
IntSlider(value=0)
IntSlider(value=10)
HTML(value='<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\…