Pandas - desempilhar os valores das colunas em novas colunas
Eu tenho um grande quadro de dados e estou armazenando muitos valores redundantes que dificultam o tratamento dos meus dados. Eu tenho um quadro de dados do formulário:
import pandas as pd
df = pd.DataFrame([["a","g","n1","y1"], ["a","g","n2","y2"], ["b","h","n1","y3"], ["b","h","n2","y4"]], columns=["meta1", "meta2", "name", "data"])
>>> df
meta1 meta2 name data
a g n1 y1
a g n2 y2
b h n1 y3
b h n2 y4
onde eu tenho os nomes das novas colunas que eu gostarianame
e os respectivos dados emdata
.
Gostaria de produzir um dataframe do formulário:
df = pd.DataFrame([["a","g","y1","y2"], ["b","h","y3","y4"]], columns=["meta1", "meta2", "n1", "n2"])
>>> df
meta1 meta2 n1 n2
a g y1 y2
b h y3 y4
As colunas chamadasmeta
existem cerca de 15 ou mais colunas que contêm a maioria dos dados, e não acho que sejam particularmente adequadas para indexação. A idéia é que eu tenho muitos dados repetidos / redundantes armazenados emmeta
no momento e gostaria de produzir o dataframe mais compacto apresentado.
Encontrei Qs semelhantes, mas não consigo identificar que tipo de operações eu preciso fazer: girar, indexar novamente, empilhar ou desempilhar, etc.?
PS - os valores originais do índice não são importantes para meus propósitos.
Qualquer ajuda seria muito apreciada.
Pergunta que acho que está relacionada:
Acho que o Q a seguir está relacionado ao que estou tentando fazer, mas não consigo ver como aplicá-lo, pois não quero produzir mais índices.
Python Pandas - como desempilhar uma tabela dinâmica com dois valores com cada valor se tornando uma nova coluna?