Reputation: 334
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
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