Skip to main content

This project provides a collection of utilities for doing lightweight data wrangling.

Project description

datashaper

This project provides a collection of utilities for doing lightweight data wrangling.

There are two goals of the project:

  1. Create a shareable client/server schema for serialized wrangling instructions
  2. Maintain an implementation of a basic wrangling engine (based on Arquero) and in the case of python implemented in Pandas

Building

  • You need to install poetry python package manager.
  • Run: poetry install

Usage

This project is intended to be used as a library for lightweight data wrangling. In the examples folder there is a Notebook which provides several examples of how to create data wrangling pipelines and how to read json specifications that can be generated by the js implementation.

Example of joining two tables:

from datashaper.pipeline import Pipeline
import datashaper.types as types
import pandas as pd

# id   name
# 1    bob
# 2    joe
# 3    jane
parents = pd.DataFrame({
    "id": [1, 2, 3],
    "name": ['bob', 'joe', 'jane']
})

# id   kid
# 1    billy
# 1    jill
# 2    kaden
# 2    kyle
# 3    moe
kids = pd.DataFrame({
    "id": [1, 1, 2, 2, 3],
    "kid": ['billy', 'jill', 'kaden', 'kyle', 'moe']
})

pipeline = Pipeline()

pipeline.add_dataset('parents', parents)
pipeline.add_dataset('kids', kids)

pipeline.add(Step(
    verb=Verb.join,
    input="parents",
    output="output",
    args={
        "other": "kids",
        "on":["id"]
    }
))

# id   name    kid
# 1    bob     billy
# 1    bob     jill
# 2    joe     kaden
# 2    joe     kyle
# 3    jane    moe
result = pipeline.run()

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

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

datashaper-0.0.32.tar.gz (28.5 kB view details)

Uploaded Source

Built Distribution

datashaper-0.0.32-py3-none-any.whl (57.4 kB view details)

Uploaded Python 3

File details

Details for the file datashaper-0.0.32.tar.gz.

File metadata

  • Download URL: datashaper-0.0.32.tar.gz
  • Upload date:
  • Size: 28.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for datashaper-0.0.32.tar.gz
Algorithm Hash digest
SHA256 d1416ef6d5033b9d392f222ebfef02fcc315c5ddac0416f64f26e2d2cd57d1a0
MD5 ee27eb4450641eeda23d63ea286957a5
BLAKE2b-256 9961d405b76d6d212052d310e9919a654717eedef36e8469bf7d7405fe0d42dd

See more details on using hashes here.

File details

Details for the file datashaper-0.0.32-py3-none-any.whl.

File metadata

  • Download URL: datashaper-0.0.32-py3-none-any.whl
  • Upload date:
  • Size: 57.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for datashaper-0.0.32-py3-none-any.whl
Algorithm Hash digest
SHA256 cc0abede9cc1cdb0c9ae55646967826af3856e5da2a8dba76c2e8812411aff02
MD5 b634dc195e77479252d4d10b75e1df67
BLAKE2b-256 dc55a5c9a49868a14ac977a8b4c16c75e12d45af03c7972f54d2c59e30a805e1

See more details on using hashes here.

Supported by

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