शुरू करेंमुफ़्त में शुरू करें

इंटरएक्टिव की स्टैट्स टेबल

ग्राफ़ का उपयोग करके डेटा को विज़ुअल रूप में दिखाना समग्र आँकड़ों को समझने का बेहतरीन तरीका है। लेकिन कई बार आपको ऐसे और भी नंबर देखने होते हैं जिन्हें आम विज़ुअलाइज़ेशन फॉर्मैट्स में दिखाना संभव नहीं होता.

ई-कॉमर्स कंपनी के एक महत्वपूर्ण स्टेकहोल्डर, फ़ाइनेंस विभाग के प्रमुख, ने आपका अच्छा काम सुना है, लेकिन वे विज़ुअल के बजाय टैबुलर फॉर्मैट में कुछ आँकड़े देखना पसंद करते हैं। उन्होंने आपसे अनुरोध किया है कि एक डैशबोर्ड बनाइए जो कुछ aggregated स्टैट्स को तालिका के रूप में दिखाए। हालाँकि, उनका सवाल है कि क्या आप इसमें थोड़ा 'Dash magic' भी जोड़ सकते हैं ताकि यह उनकी मौजूदा Excel स्प्रेडशीट्स से कुछ अधिक इंटरएक्टिव हो जाए?

यह अभ्यास पाठ्यक्रम का हिस्सा है

Dash और Plotly के साथ डैशबोर्ड बनाना

पाठ्यक्रम देखें

अभ्यास निर्देश

  • लाइन 9 के नीचे USD करेंसी फ़ॉर्मैटिंग के लिए money_fmt ऑब्जेक्ट सेट करें, उपयुक्त function और style पैरामीटर्स का उपयोग करते हुए.
  • लाइन 15 के नीचे column_defs में 'Total Sales ($)' कॉलम पर money_fmt फ़ॉर्मैटर जोड़ें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

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 ($)'})

# Set up the money object
money_fmt = {
"____": (
  """params.value.toLocaleString(
  'en-US', {style: '____', currency: '____'})""")}

# Add the formatter to the relevant column
column_defs = [
  {"field": "Major Category"},
  {"field": "Total Sales ($)", "____": ____},
  {"field": "Average Order Value ($)"},
  {"field": "Sales Volume"}]

grid = AgGrid(
  columnDefs=column_defs,
  rowData=key_stats_tb.to_dict("records"))

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)
कोड संपादित करें और चलाएँ