ipywidgetsの使い方
環境
- Windows10
- anaconda
- python3
- jupyter notebook
ドロップダウンリストの作成
Dropdown
# ipywidgetsライブラリからDropdownをインポート
from ipywidgets import Dropdown
# データ抽出処理の関数
def order_by_dropdown(val):
clear_output()
display(dropdown)
pick_data = order_data.loc[df['name']==val['new']] # ピックアップ条件
display(pick_data.head())
list = df['name'].tolist() #ドロップダウン用のリスト作成
dropdown = Dropdown(options=list)
dropdown.observe(order_by_dropdown, names='value')
display(dropdown)
8行目val[‘new’]は、ドロップダウンで新しく選ばれた項目が入ります。
マルチセレクトの作成
SelectMultiple
# ipywidgetsライブラリからSelectMultipleをインポート
from ipywidgets import SelectMultiple
def order_by_multi(val):
clear_output()
display(select)
pick_data = order_data.loc[(df['name'].isin(val['new'])) & (df['status'].isin([1,2]))]
display(pick_data.head())
list = df['name'].tolist() #ドロップダウン用のリスト作成
select = SelectMultiple(options=list)
select.observe(order_by_multi, names='value')
display(select)
スライドバーの作成
IntSlider
# ipywidgetsライブラリからIntSliderをインポート
from ipywidgets import IntSlider
def lower(val):
clear_output()
display(slider)
temp = order_data.groupby('name')
print(temp.size()[temp.size() < val['new']])
slider = IntSlider(value=1100, min=1000, max=2000, step=100, description='件数:',)
slider.observe(store_lower, names='value')
display(slider)
10行目のスライドバーの設定は、初期値1100、最大値2000、最小値1000、100刻みとなっています。
トグルボタンの作成
ToggleButtons
# ipywidgetsライブラリからToggleButtonsをインポート
from ipywidgets import ToggleButtons
list = df['name'].unique()
def name_toggle(val):
clear_output()
display(toggle)
pick_data = order_data.loc[df['name'] == val['new']]
display(pick_data.head())
toggle = ToggleButtons(options=list)
toggle.observe(name_toggle, names='value')
display(toggle)
日付の絞り込みの作成
DatePicker
・単独の日付
# ipywidgetsライブラリからToggleButtonsをインポート
from ipywidgets import DatePicker
import datetime
order_data.loc[:,'order_date'] = pd.to_datetime(order_data['order_accept_date']).dt.date
def date_pick(val):
clear_output()
display(date_picker)
pick_data = order_data.loc[order_data['order_date'] == val['new']]
print(len(pick_data))
display(pick_data.head())
date_picker = DatePicker(value=datetime.datetime(2021,4,1))
date_picker.observe(date_pick, names='value')
display(date_picker)
・期間の指定
from ipywidgets import DatePicker
import datetime
min_date = datetime.date(2021, 4, 1)
max_date = datetime.date(2021, 4, 30)
df.loc[:,'order_date'] = pd.to_datetime(df['order_accept_date']).dt.date
# 期間が指定されたら呼ばれる関数
def between_date():
clear_output()
display(date_picker_min)
display(date_picker_max)
pick_data = df.loc[(df['order_date'] >= min_date) & (df['order_date'] <= max_date) & (df['status'].isin([1,2]))]
print(len(pick_data))
display(pick_data.head())
# 最小日(期間自)の日付を変数にセットする関数
def set_min_date(val):
global min_date
min_date = val['new']
between_date()
# 最大日(期間至)の日付を変数にセットする関数
def set_max_date(val):
global max_date
max_date = val['new']
between_date()
date_picker_min = DatePicker(value=min_date)
date_picker_min.observe(set_min_date, names='value')
print('最小日付')
display(date_picker_min)
date_picker_max = DatePicker(value=max_date)
date_picker_max.observe(set_max_date, names='value')
print('最大日付')
display(date_picker_max)
コメント