Maximiliano Vazquez
Maximiliano Vazquez

Reputation: 334

transpose df group by column value

I have a df like this :

PRODUCTNUMBER ATTRIBUTETYPENAME TEXTVALUE
ADAC5262 Genero HOMBRE
ADAC5262 Marca ADIDAS
ADAC5262 Origen NACIONAL
ADAC5262 Tipo de Producto MEDIAS
ADAC5262 Color AZUL+BLANCO
ADAC5262 Proveedor 117 ADIDAS ARGENTINA S A
ADAC5262 Clase ACCESORIOS
ADAC5262 Categoria FUTBOL
ADAC5262 Edad ADULTO
ADAC5262 Banner NA
ADAC5262 Coleccion SS2020
ADAC5262 Segmento MEDIO
ADAC5262 Linea de Producto FUTBOL
ADAC5262 Garantia del fabricante CONTRA DEFECTO DE FABRICACION
ADAC5262 Matriz OPORTUNIDAD REBAJADO
ADAC5262 Talle proveedor 1
ADAC5262 Genero HOMBRE
ADAC5262 Marca ADIDAS
ADAC5262 Origen NACIONAL
ADAC5262 Tipo de Producto MEDIAS
ADAC5262 Color AZUL+BLANCO
ADAC5262 Proveedor 117 ADIDAS ARGENTINA S A
ADAC5262 Clase ACCESORIOS
ADAC5262 Categoria FUTBOL
ADAC5262 Edad ADULTO
ADAC5262 Banner NA
ADAC5262 Coleccion SS2020
ADAC5262 Segmento MEDIO
ADAC5262 Linea de Producto FUTBOL
ADAC5262 Garantia del fabricante CONTRA DEFECTO DE FABRICACION
ADAC5262 Matriz OPORTUNIDAD REBAJADO
ADAC5262 Talle proveedor 2
ADAC5262 Genero HOMBRE
ADAC5262 Marca ADIDAS
ADAC5262 Origen NACIONAL
ADAC5262 Tipo de Producto MEDIAS
ADAC5262 Color AZUL+BLANCO
ADAC5262 Proveedor 117 ADIDAS ARGENTINA S A
ADAC5262 Clase ACCESORIOS
ADAC5262 Categoria FUTBOL
ADAC5262 Edad ADULTO
ADAC5262 Banner NA
ADAC5262 Coleccion SS2020
ADAC5262 Segmento MEDIO
ADAC5262 Linea de Producto FUTBOL
ADAC5262 Garantia del fabricante CONTRA DEFECTO DE FABRICACION
ADAC5262 Matriz OPORTUNIDAD REBAJADO
ADAC5262 Talle proveedor 4126

and I need to transpose and get as result:

PRODUCTNUMBER Genero Marca Origen Tipo de Producto Color Proveedor Clase Categoria Edad Banner Coleccion Segmento Linea de Producto Garantia del fabricante Matriz Talle proveedor
ADAC5262 HOMBRE ADIDAS NACIONAL MEDIAS AZUL+BLANCO 117 ADIDAS ARGENTINA S A ACCESORIOS FUTBOL ADULTO NA SS2020 MEDIO FUTBOL CONTRA DEFECTO DE FABRICACION OPORTUNIDAD REBAJADO 1
ADAC5262 HOMBRE ADIDAS NACIONAL MEDIAS AZUL+BLANCO 117 ADIDAS ARGENTINA S A ACCESORIOS FUTBOL ADULTO NA SS2020 MEDIO FUTBOL CONTRA DEFECTO DE FABRICACION OPORTUNIDAD REBAJADO 2
ADAC5262 HOMBRE ADIDAS NACIONAL MEDIAS AZUL+BLANCO 117 ADIDAS ARGENTINA S A ACCESORIOS FUTBOL ADULTO NA SS2020 MEDIO FUTBOL CONTRA DEFECTO DE FABRICACION OPORTUNIDAD REBAJADO 4126

Is it possible to transpose in that way?

Upvotes: 0

Views: 37

Answers (1)

Andrej Kesely
Andrej Kesely

Reputation: 195438

Try:

df = (
    df.assign(tmp=df["ATTRIBUTETYPENAME"].eq("Genero").cumsum())
    .pivot(
        index=["tmp", "PRODUCTNUMBER"],
        columns="ATTRIBUTETYPENAME",
        values="TEXTVALUE",
    )
    .reset_index()
    .drop(columns="tmp")
)
df.columns.name = None
print(df.to_markdown(index=False))

Prints:

PRODUCTNUMBER Banner Categoria Clase Coleccion Color Edad Garantia del fabricante Genero Linea de Producto Marca Matriz Origen Proveedor Segmento Talle proveedor Tipo de Producto
ADAC5262 nan FUTBOL ACCESORIOS SS2020 AZUL+BLANCO ADULTO CONTRA DEFECTO DE FABRICACION HOMBRE FUTBOL ADIDAS OPORTUNIDAD REBAJADO NACIONAL 117 ADIDAS ARGENTINA S A MEDIO 1 MEDIAS
ADAC5262 nan FUTBOL ACCESORIOS SS2020 AZUL+BLANCO ADULTO CONTRA DEFECTO DE FABRICACION HOMBRE FUTBOL ADIDAS OPORTUNIDAD REBAJADO NACIONAL 117 ADIDAS ARGENTINA S A MEDIO 2 MEDIAS
ADAC5262 nan FUTBOL ACCESORIOS SS2020 AZUL+BLANCO ADULTO CONTRA DEFECTO DE FABRICACION HOMBRE FUTBOL ADIDAS OPORTUNIDAD REBAJADO NACIONAL 117 ADIDAS ARGENTINA S A MEDIO 4126 MEDIAS

Upvotes: 0

Related Questions