D /docs/undefined
D /docs/undefined
1{2 "nbformat": 4,3 "nbformat_minor": 5,4 "metadata": {5 "kernelspec": {6 "display_name": "Python 3",7 "language": "python",8 "name": "python3"9 },10 "language_info": {11 "name": "python",12 "version": "3.12.0"13 }14 },15 "cells": [16 {17 "cell_type": "markdown",18 "metadata": {},19 "source": [20 "# Data Analysis Demo\n",21 "\n",22 "Demonstrates pandas-style HTML table output and multiple output types."23 ]24 },25 {26 "cell_type": "code",27 "metadata": {},28 "execution_count": 1,29 "source": [30 "import pandas as pd\n",31 "import numpy as np\n",32 "\n",33 "np.random.seed(42)"34 ],35 "outputs": []36 },37 {38 "cell_type": "markdown",39 "metadata": {},40 "source": [41 "## Generate Sample Data\n",42 "\n",43 "Create a DataFrame with sales data across regions."44 ]45 },46 {47 "cell_type": "code",48 "metadata": {},49 "execution_count": 2,50 "source": [51 "df = pd.DataFrame({\n",52 " 'region': ['Europe', 'Europe', 'Asia', 'Asia', 'Americas', 'Americas'],\n",53 " 'product': ['Widget A', 'Widget B', 'Widget A', 'Widget B', 'Widget A', 'Widget B'],\n",54 " 'revenue': [12500, 8900, 15200, 11300, 9800, 7600],\n",55 " 'units': [250, 178, 304, 226, 196, 152],\n",56 " 'growth': [0.12, -0.03, 0.28, 0.15, 0.05, -0.08]\n",57 "})\n",58 "df"59 ],60 "outputs": [61 {62 "output_type": "execute_result",63 "execution_count": 2,64 "data": {65 "text/html": [66 "<div>\n",67 "<table border=\"1\" class=\"dataframe\">\n",68 " <thead>\n",69 " <tr style=\"text-align: right;\">\n",70 " <th></th>\n",71 " <th>region</th>\n",72 " <th>product</th>\n",73 " <th>revenue</th>\n",74 " <th>units</th>\n",75 " <th>growth</th>\n",76 " </tr>\n",77 " </thead>\n",78 " <tbody>\n",79 " <tr><th>0</th><td>Europe</td><td>Widget A</td><td>12500</td><td>250</td><td>0.12</td></tr>\n",80 " <tr><th>1</th><td>Europe</td><td>Widget B</td><td>8900</td><td>178</td><td>-0.03</td></tr>\n",81 " <tr><th>2</th><td>Asia</td><td>Widget A</td><td>15200</td><td>304</td><td>0.28</td></tr>\n",82 " <tr><th>3</th><td>Asia</td><td>Widget B</td><td>11300</td><td>226</td><td>0.15</td></tr>\n",83 " <tr><th>4</th><td>Americas</td><td>Widget A</td><td>9800</td><td>196</td><td>0.05</td></tr>\n",84 " <tr><th>5</th><td>Americas</td><td>Widget B</td><td>7600</td><td>152</td><td>-0.08</td></tr>\n",85 " </tbody>\n",86 "</table>\n",87 "</div>"88 ],89 "text/plain": " region product revenue units growth\n0 Europe Widget A 12500 250 0.12\n1 Europe Widget B 8900 178 -0.03\n2 Asia Widget A 15200 304 0.28\n3 Asia Widget B 11300 226 0.15\n4 Americas Widget A 9800 196 0.05\n5 Americas Widget B 7600 152 -0.08"90 },91 "metadata": {}92 }93 ]94 },95 {96 "cell_type": "markdown",97 "metadata": {},98 "source": [99 "## Summary Statistics"100 ]101 },102 {103 "cell_type": "code",104 "metadata": {},105 "execution_count": 3,106 "source": [107 "summary = df.groupby('region').agg({\n",108 " 'revenue': 'sum',\n",109 " 'units': 'sum',\n",110 " 'growth': 'mean'\n",111 "}).round(2)\n",112 "summary"113 ],114 "outputs": [115 {116 "output_type": "execute_result",117 "execution_count": 3,118 "data": {119 "text/html": [120 "<div>\n",121 "<table border=\"1\" class=\"dataframe\">\n",122 " <thead>\n",123 " <tr style=\"text-align: right;\">\n",124 " <th></th>\n",125 " <th>revenue</th>\n",126 " <th>units</th>\n",127 " <th>growth</th>\n",128 " </tr>\n",129 " <tr>\n",130 " <th>region</th>\n",131 " <th></th>\n",132 " <th></th>\n",133 " <th></th>\n",134 " </tr>\n",135 " </thead>\n",136 " <tbody>\n",137 " <tr><th>Americas</th><td>17400</td><td>348</td><td>-0.02</td></tr>\n",138 " <tr><th>Asia</th><td>26500</td><td>530</td><td>0.22</td></tr>\n",139 " <tr><th>Europe</th><td>21400</td><td>428</td><td>0.04</td></tr>\n",140 " </tbody>\n",141 "</table>\n",142 "</div>"143 ],144 "text/plain": " revenue units growth\nregion \nAmericas 17400 348 -0.02\nAsia 26500 530 0.22\nEurope 21400 428 0.04"145 },146 "metadata": {}147 }148 ]149 },150 {151 "cell_type": "markdown",152 "metadata": {},153 "source": [154 "## Key Findings\n",155 "\n",156 "- Asia has the highest total revenue ($26,500) and strongest growth (22%)\n",157 "- Americas shows slight decline (-2% average growth)\n",158 "- Widget A consistently outperforms Widget B across all regions"159 ]160 },161 {162 "cell_type": "code",163 "metadata": {},164 "execution_count": 4,165 "source": [166 "total_revenue = df['revenue'].sum()\n",167 "top_region = summary['revenue'].idxmax()\n",168 "print(f\"Total revenue: ${total_revenue:,}\")\n",169 "print(f\"Top region: {top_region}\")\n",170 "print(f\"Total units sold: {df['units'].sum():,}\")"171 ],172 "outputs": [173 {174 "output_type": "stream",175 "name": "stdout",176 "text": [177 "Total revenue: $65,300\n",178 "Top region: Asia\n",179 "Total units sold: 1,306\n"180 ]181 }182 ]183 }184 ]185}