Check out some of my data analysis and vizualization projects
Fragmentation: Critical hotel metricsβreal-time occupancy, projected arrivals, out-of-order rooms, and variable pricingβwere siloed across separate, numbers-only tables.
Blind Spots: Lack of a unified, real-time visual overview risked missed opportunities for optimizing room pricing and resource allocation.
Automation: Engineered an automated Google Sheets dashboard to parse, aggregate, and visualize dynamic time-series data, providing management with real-time operational health and proactive pricing insights.
Daily KPIs by Hour
Bottleneck: Lab experiments generated multi-group behavioral datasets requiring tedious, manual reformatting before moving to statistical software.
Risk: High susceptibility to human error during manual data manipulation across extensive trial runs.
Visual Gap: Default statistical software produced rigid, aesthetically unappealing charts that lacked publication-ready quality.
Automation: Engineered a custom PySimpleGUI desktop application to automate ingestion, group-by-group statistical analysis, and high-fidelity visualization in seconds.
Short video demonstrating the desktop application's functionality
Assignment Complexity: Assigning pair-housed subjects to treatment versus control groups based on baseline data required minimizing initial differences while strictly preserving cage-mate pairs.
Scale: Evaluating thousands of potential group assignment combinations to find the absolute minimum variance was entirely impractical to perform manually.
Algorithm & Interface: Developed a PySimpleGUI desktop app leveraging Pandas and Itertools to systematically compute all group permutations, identify optimal minimum-variance pairings, and generate Matplotlib visual verification.
Graph generated showing hypothetical two-group assignments that are the least different between each other out of all possible group assignments
Short video demonstrating the desktop application's functionality
Evaluation Gap: Tracking individual stock portfolio performance over time lacked a systematic, automated method for historical benchmarking.
API Pipeline:
Built a Python automation script using the robin_stocks API
to log daily positions into CSV, leveraging Pandas and Matplotlib
to benchmark portfolio total return and asset allocation against
diversified ETFs.
Data Deluge: Running-wheel experiments generated millions of timestamped revolution data points across multiple subjects and extended cycles.
Filtering Bottleneck: Manually filtering valid running bouts (>=3 RPM) and isolating activity between light (inactive) and dark (active) phases was labor-intensive and error-prone.
Parsing Engine: Created a PySimpleGUI and Openpyxl desktop application to ingest, filter, and aggregate multi-subject running data by phase in seconds, complete with automated Matplotlib comparative graphs.
Graph generated showing mean values of different wheel running behaviors during the animal's active 12hr light-cycle versus their inactive 12hr light-cycle.
Short video demonstrating the desktop application's functionality
Category Inaccuracies: Commercial bank and credit card dashboards relied on broad, rigid spending categories that frequently miscategorized transactions and lacked trend tracking.
Custom Pipeline: Developed a Pandas-powered Python script to clean and re-categorize statement CSVs, generating granular Matplotlib stacked bar charts for precise monthly expenditure tracking.
Extraneous Data: Infrared beam-break chambers outputted massive, unstructured text files containing substantial superfluous data alongside target locomotion metrics.
Manual Friction: Manually extracting and formatting relevant time-bins for multiple subjects across multi-hour trials was painfully slow and prone to transcription errors.
Text Parser: Built a PySimpleGUI desktop utility using regular expressions and Pandas to parse raw text outputs, normalize data into clean Excel spreadsheets, and auto-generate exploratory time-bin graphs.
Graph generated showing mean values of all subjects locomotion for each 5min time period over the 1hr trial period along with SEM of each time bin. Graph is charactoristic of the inital high exploritory behavior of a novel environment that tapers off over time.
Short video demonstrating the desktop application's functionality
Click Link to Try My App: PySimpleGUI Emulated on Streamlit
Streamlit Emulation Preview Image