Skip to content

anuj-patel/data-analysis-lib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stack Overflow Survey Analysis Toolkit

PyPI version Build Status Coverage License Last Commit

A Python toolkit for loading, analyzing, and extracting insights from Stack
Overflow's annual developer survey datasets
. This package provides both a
command-line interface and a programmatic API for working with survey data.

Table of Contents

Installation

This package requires Python 3.7 or higher.

pip install so_survey

Usage

The so_survey package provides a command-line interface for common operations:

List available datasets

so_survey catalog

Load and preview a dataset

so_survey load survey_2022 --head 10

Filter a dataset by column values

so_survey subset survey_2022 --column Language --values "Python" \
  --output filtered_data.csv

Calculate statistics on a dataset

so_survey stats survey_2022 --columns YearsCodePro Salary

Modules

The package is organized into several modules:

  • loader.py: Handles loading survey data from CSV files into pandas
    DataFrames with appropriate data type inference.
  • catalog.py: Manages dataset discovery and provides utilities for listing
    and accessing available datasets.
  • subset.py: Offers functionality for filtering and creating subsets of
    survey data based on column values or ranges.
  • stats.py: Implements statistical functions for analyzing survey data
    including descriptive statistics.
  • cli.py: Provides a command-line interface with commands for interacting
    with the survey data.

Contributing

Contributions to the Stack Overflow Survey Analysis Toolkit are welcome!

Development Setup

  1. Clone the repository:
git clone https://github.com/so-survey/so-survey.git
cd so-survey
  1. Install development dependencies:
pip install -e ".[dev]"

Development Workflow

  • Run tests:

    pytest
  • Lint code:

    flake8 .
  • Type checking:

    mypy .

Pull Requests

Before submitting a pull request, please ensure that:

  • Your code passes all tests
  • Your code passes flake8 linting
  • Your code passes mypy type checking
  • You've added tests for any new functionality
  • You've updated documentation as needed

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages