की स्टैट्स टेबल को पेजिनेट करना
पिछले लेसन में बनाई गई की स्टैट्स टेबल ग्लोबल ई-कॉमर्स कंपनी के एनालिटिकल टूलकिट के लिए बढ़िया जोड़ थी. लेकिन यह बहुत लंबी थी!
आइए Dash AG Grid के बिल्ट-इन पेजिनेशन विकल्पों का उपयोग करके इसे ठीक करें. इससे ऐप की उपयोगिता काफी बढ़ेगी और यूज़र अपनी ज़रूरत के अनुसार डेटा के अलग-अलग सेक्शन एक्सप्लोर कर पाएँगे.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Dash और Plotly के साथ डैशबोर्ड बनाना
अभ्यास निर्देश
- लाइन
21के नीचेAgGridफंक्शन का उपयोग करकेgridनाम का एक Dash AG Grid ऑब्जेक्ट बनाएँ. - लाइन
25के नीचेpaginationपैरामीटर सेट करकेgridके लिए पेजिनेशन ऑन करें. - लाइन
28के नीचेpaginationPageSizeपैरामीटर सेट करके हर पेज पर 7 पंक्तियों तक सीमित करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
from dash import Dash, dcc, html, Input, Output, callback
import plotly.express as px
import pandas as pd
from dash_ag_grid import AgGrid
ecom_sales = pd.read_csv('/usr/local/share/datasets/ecom_sales.csv')
logo_link = 'https://assets.datacamp.com/production/repositories/5893/datasets/fdbe0accd2581a0c505dab4b29ebb66cf72a1803/e-comlogo.png'
key_stats_tb = ecom_sales.groupby(['Country','Major Category', 'Minor Category'])['OrderValue'].agg(['sum', 'count', 'mean']).reset_index().rename(columns={'count':'Sales Volume', 'sum':'Total Sales ($)', 'mean':'Average Order Value ($)'})
money_fmt = {
"function": (
"""params.value.toLocaleString(
'en-US', {style: 'currency', currency: 'USD'})""")}
column_defs = [
{"field": "Major Category"},
{"field": "Total Sales ($)", "valueFormatter": money_fmt},
{"field": "Average Order Value ($)", "valueFormatter": money_fmt},
{"field": "Sales Volume"}
]
# Create a grid
grid = ____(
columnDefs=column_defs,
rowData=key_stats_tb.to_dict("records"),
# Turn on pagination
dashGridOptions={
"____": ____,
# Show 7 rows per page
"____": ____}
)
app = Dash()
app.layout = [
html.Img(src=logo_link, style={'margin':'30px 0px 0px 0px'}),
html.H1('Sales Aggregations'),
html.Div([
html.H2('Key Aggregations'),
grid],
style={'width':'850px', 'height':'750px', 'margin':'0 auto'})
]
if __name__ == '__main__':
app.run(debug=True)