Giter Site home page Giter Site logo

Comments (1)

dangotbanned avatar dangotbanned commented on July 19, 2024

Feel free to adapt this:

def cast_str_bool(
    *cols: str, replacer: Literal["lower", "upper", "capwords"] = "lower"
) -> Expr:
    """
    Casts `cols` through `Int64` to `Boolean`, via Expr.`replace`.

    Selection is via cs.`matches`, and can be applied transparently.

    Parameters
    ----------
    *cols
        One or more column names, which are of type String
    replacer
        remapping strategy from _ to 1,0.
            `lower`: 'true', 'false'
            `upper`: 'TRUE', 'FALSE'
            `capwords`: 'True', 'False'
    """
    match replacer:
        case "lower":
            mapping = {
                "true": 1,
                "false": 0,
            }
        case "upper":
            mapping = {
                "TRUE": 1,
                "FALSE": 0,
            }
        case "capwords":
            mapping = {
                "True": 1,
                "False": 0,
            }
        case _:
            msg = (
                f"`replacer` must be one of {["lower", "upper", "capwords"]!r}\n"
                f"but got {replacer!r}"
            )
            raise ValueError(msg)
    return (
        cs.matches(f"^{"|".join(cols)}$")
        .replace(mapping)
        .str.to_integer()
        .cast(pl.Boolean)
    )

from polars.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.