[Python] pandas or python equivalent of tidyr complete

Discussão em 'Python' iniciado por Stack, Setembro 2, 2025.

  1. Stack

    Stack Membro Participativo

    I have data that looks like this:

    library("tidyverse")

    df <- tibble(user = c(1, 1, 2, 3, 3, 3), x = c("a", "b", "a", "a", "c", "d"), y = 1)
    df

    # user x y
    # 1 1 a 1
    # 2 1 b 1
    # 3 2 a 1
    # 4 3 a 1
    # 5 3 c 1
    # 6 3 d 1


    Python format:

    import pandas as pd
    df = pd.DataFrame({'user':[1, 1, 2, 3, 3, 3], 'x':['a', 'b', 'a', 'a', 'c', 'd'], 'y':1})


    I'd like to "complete" the data frame so that every user has a record for every possible x with the default y fill set to 0.

    This is somewhat trivial in R (tidyverse/tidyr):

    df %>%
    complete(nesting(user), x = c("a", "b", "c", "d"), fill = list(y = 0))

    # user x y
    # 1 1 a 1
    # 2 1 b 1
    # 3 1 c 0
    # 4 1 d 0
    # 5 2 a 1
    # 6 2 b 0
    # 7 2 c 0
    # 8 2 d 0
    # 9 3 a 1
    # 10 3 b 0
    # 11 3 c 1
    # 12 3 d 1


    Is there a complete equivalent in pandas / python that will yield the same result?

    Continue reading...

Compartilhe esta Página