Skip to main content

DataFrame extensions for data analysis.

Project description

mindhunter-header

🐯 mindhunter

Extensions for DataFrames to make statistical and analysis operations much, much more comfortable and convenient. Turns your DataFrame into a StatFrame, composing Mindhunter's new features over it, supercharging its capabilities without sacrificing compatibility.


📦 Installation

🗃️ From the repo:

You need uv to build the module.

  • Clone the repository
  • chmod +x ./build.sh
  • ./build.sh
    • It will clear cache, build, install and test the module.

🧪 Testing

Mindhunter implements a fairly rudimentary setup for testing. It will look inside tests for any fixtures or tests inside files starting with test_. It uses pytest and faker to create a randomised dataset to test upon.

So far, coverage goes to the extent of making sure a StatFrame can be created and data can be obtained. More testing is being developed and it's coming soon.

📝 Features

📋 Meet StatFrame and the crew

  • Your new StatFrame can be used now with Mindhunter's new Analyzers, Plotters and Toolkits:
    • DistributionAnalyzer: adds normal distribution utilities directly on top of the DataFrame.
    • HypothesisAnalyzer: adds hypothesis testing, binomial and related functionality.
    • AnalyticalTools: provides access to scipy.stats methods to generate and convert several values over a given StatFrame.
    • StatPlotter: adds ready-to-go plotting capabilities for many common values, like z-scores, Coefficient of Variation, Normal Distribution, and others; using seaborn and matplotlib.pyplot.
    • StatVisualizer: provides easy access to build common graphs and visualizations, returning ready-to-go graphs just by passing lists or a StatFrame.

💾 Quick stats and cached values

  • StatFrame also holds a cache of the most commonly-used values and variables, providing easy access to the values of not just a column, but of a whole set. It caches:
  • Central Tendency:
    • mean
    • median
    • mode
  • Spread/Variability:
    • std (standard deviation)
    • variance
    • range
    • iqr (inter-quantile range)
    • mad (median absolute deviation)
  • Distribution Shape:
    • skewness
    • kurtosis
  • Data Quality:
    • count
    • missing_count
    • missing_pct
  • Extreme Values:
    • min
    • max
    • q1
    • q3
  • Key Ratios:
    • cv (coefficient of variation)
    • sem (standard error of mean)

🧹 Auto-cleanup:

  • Mindhunter can also automatically cleans column names, drops NaN and duplicates of datasets. It also provides methods to locate, analyze and remove zero-values from your dataset.

ℹ️ But, why?

I've been studying data analysis and, over the months, I've been collecting a bunch of little methods and scripts to do my homework. It then went to the point it was a 800+ line cell on each Jupyter Notebook. It became a bit too much.

🏗️ How does it work on the inside:

In short: it uses basic OOP composition, against all advise, to pass the StatFrame as an argument. That class holds the DataFrame itself, and all operations are done through the StatFrame directly to the DF. All operations act directly on the source, and calling update() will re-trigger the caching process.

🔮 So, what's the future?

This library will be updated fairly regularly, as I start collecting and tidying up more and more little tools, and taking more advantage of the internal mechanisms. I am much more of a developer than a data analyst, so I need much more help knowing what the community needs for me to keep on improving the library. If you have any issue, suggestion or comment, feel free to create a new issue!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mindhunter-0.1.1.tar.gz (149.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mindhunter-0.1.1-py3-none-any.whl (23.5 kB view details)

Uploaded Python 3

File details

Details for the file mindhunter-0.1.1.tar.gz.

File metadata

  • Download URL: mindhunter-0.1.1.tar.gz
  • Upload date:
  • Size: 149.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.22

File hashes

Hashes for mindhunter-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8f6cce16deeb50706e03978ae14e3b635767c1d608ae23468bb989dc1b3a2638
MD5 414ef5433d8d8298d101c9711d370f8f
BLAKE2b-256 6c7528ed255a78fb3f2e2eba100aa597e4331dd63ad64e35200a1489e1de59ec

See more details on using hashes here.

File details

Details for the file mindhunter-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: mindhunter-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 23.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.22

File hashes

Hashes for mindhunter-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f507e918313d5627c011815e9083338cc014e80b796b168bacb4565369ee65fc
MD5 c5e6ae06c4acdea98d379776af0d792a
BLAKE2b-256 419cdecd260fcd680e1d3aa85a8d9e370d33cbfbc7fd77bcb88be2600aa5c114

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page