Pandas achatar multiindex

Pandas achatar multiindex
MultiIndex é um conjunto de métodos sofisticados de indexação para quadros de dados. Permite que os índices tenham numerosos níveis. Também pode ser referido como um índice de vários níveis ou um índice hierárquico. O objeto MultiIndex fornece uma representação hierárquica do objeto de índice padrão, que geralmente contém os rótulos dos eixos nos objetos dos pandas. MultiIndex pode ser comparado a uma variedade de tuplas, cada uma das quais é distinta. Você quase nunca precisa de uma coluna com um índice hierárquico em pandas. Na maioria das vezes, você só deseja usar um único nome de coluna para identificar uma coluna. Neste tutorial, achataremos o quadro de dados multiindex usando algumas funções de pandas.

Como o multiindex pode ser achatado em pandas

As funções como Reset_Index e To_Records () podem ser usadas para achatar o multiindex. Vamos te ensinar como achatar o multiindex nos exemplos a seguir.

Exemplo 1: achatando o multiindex de todos os níveis usando a função reset_index ()

Usando a função reset_index (), achataremos todas as camadas do quadro de dados neste exemplo. A lista de tuplas é convertida em MultiIndex usando o método From_Tuples (). Podemos criar um multiindex de várias maneiras, e este é o mais comum.

Primeiro, criamos nosso multiindex "Mi", passando pelas múltiplas tuplas - ('inglês', '1201', 800), ('Maths', '1202', 900), ('Bio', '1203', 1050) , ('Física', '1204', 1050) e ('química', '1205', 1100) dentro do PD.MultiIndex.Função de_tuples (). Os nomes das colunas das tuplas são especificados como 'sujeito', 'sujeito_id' e 'taxa'. Depois de criar o MultiIndex "Mi", também criamos um quadro de dados de pandas usando o PD.Função DataFrame (). Passamos um dicionário com os nomes dos estudantes como chaves e as marcas dos alunos como valores dentro do nosso Dataframe "DF".

Temos 3 colunas - "Mike", "Jack" e "Eva" - com os valores dos dados (49, 43, 39, 41, 37), (36, 35, 41, 36, 42) e (46, 44, 39, 46, 48), respectivamente. Você pode notar que especificando o multiindex "Mi" como o parâmetro "índice" dentro do PD.Função DataFrame (), as colunas de tuplas atuam como índices de vários níveis. Agora, usamos a função Reset_index () para alterar os índices multi em colunas DataFrame. O índice de vários níveis pode ser adicionado como uma nova coluna DataFrame usando o reset_index (). O argumento de queda pode ser usado na função reset_index () se não quisermos alterar o índice como uma coluna. Em vez de fazer uma nova cópia, podemos redefinir o índice do quadro de dados atual usando o argumento em vigor.

Pode -se notar que todos os três níveis de índices são alterados para a coluna do nosso "DF" DataFrame. O índice também é redefinido para o índice inteiro padrão de pandas.

Exemplo 2: achatando os níveis específicos de multiindex usando a função reset_index ()

A abordagem para achatar todos os níveis de multiindex nas colunas do quadro de dados foi demonstrada no exemplo anterior. Agora, aprenderemos a achatar os níveis específicos do índice nas colunas do DataFrame usando a função Reset_index (). Um DataFrame pode ser criado de várias maneiras com o Pandas MultiIndex. Já vimos aquele que faz uso do método de tuplas. Vamos criar um multiindex usando a função From_array ().

Passamos três matrizes e especificamos seus nomes como "L1" com os valores do índice numérico (11, 22, 33, 44, 55). Especificamos “L2” com valores de string ('i', 'ii', 'iii', 'iv', 'v') e “L3” com valores de índice inteiro (1, 2, 3, 4, 5). Agora, usamos este multiindex "mi" dentro do PD.Função DataFrame () para criar um DataFrame multiindex.

Para criar nosso quadro de dados, primeiro criamos um "dados" do Python Dictionary com pares de valores-chave. Então, o dicionário "dados" é passado dentro do PD.DataFrame () função como uma entrada. O parâmetro "colunas" é especificado como ['departamento', 'despesa'] para alterar as chaves e os valores do dicionário em rótulos e dados de coluna do quadro de dados do pandas. O índice de parâmetros é especificado como "mi" para definir os níveis de múltiplasindex no quadro de dados 'df'. Agora, usamos a função reset_index () para achatar um ou mais níveis de multiindex em colunas.

Sintaxe para achatar o nível específico usando reset_index ():

quadro de dados.reset_index (inplace = true, nível = ['nome do nível']))

O nome do nível do índice que queremos achatar é especificado no parâmetro "nível".

Suponhamos que tenhamos que achatar o índice "L1" na coluna do DataFrame.

Pode -se notar que, ao especificar o parâmetro "nível" como "L1" dentro da função Reset_index (), o índice "L1" é achatado com sucesso em uma coluna. Usando a lista de níveis de índice no parâmetro "nível", podemos achatar os múltiplos índices para colunas de dados de dados. Vamos usar uma lista de índices "L2" e "L3" no parâmetro "nível" dentro da função reset_index ().

Como pode ser visto, especificando o parâmetro "nível" como a lista de níveis de índice, eu.e. ['L2', 'L3'], o nível de índices “L2” e “L3” agora também são convertidos em colunas.

Exemplo 3: achatando os níveis de multiindex usando a função to_records ()

Neste exemplo, achataremos os níveis de índice do quadro de dados usando a função to_records (). Para transformar as tuplas em MultiIndex, usaremos mais uma vez a função form_tuples (). Nós importamos os módulos de pandas primeiro, depois criamos o MultiIndex e o DataFrame.

O MultiIndex “Mi” é criado usando as várias tuplas, i.e. ('1001', 'C11', 80), ('1002', 'C12', 75), ('1003', 'C13', 90), ('1004', 'C14', 95) e ( '1005', 'C15', 70). Os nomes para os níveis de índices no multiindex são especificados como "id", "código" e "dificuldade". Agora, vamos criar nosso quadro de dados onde podemos usar este multiindex.

Nosso DataFrame é criado usando o PD.Função DataFrame (). Nosso DataFrame consiste em três colunas. A coluna "sujeito" armazena os nomes dos sujeitos ('bio', 'química', 'c ++', 'estatísticas', 'python'). A coluna “campo” atinge os valores de string que representam o campo de cada sujeito ('ciência', 'ciência', 'programação', 'matemática', 'programação'). Enquanto ele “Passing_Marks” coluna armazena as marcas menos passantes de cada sujeito (45, 45, 50, 40, 50). Há um índice de três níveis em nosso quadro de dados, como você pode ver no lado esquerdo do nosso quadro de dados "df".

Como nosso DataFrame com o MultiIndex é criado agora, usamos a função to_record () para achatar os índices multi em colunas do DataFrame. Um DataFrame pode ser transformado em uma matriz Numpy usando a função to_records (). Se solicitado, o índice é colocado como o primeiro campo da matriz de registros. Se definido, inclua o índice na matriz de registros resultantes usando o rótulo do índice ou o índice armazenado no rótulo do campo. No entanto, neste exemplo, simplesmente usaremos a função to_record () para alterar os índices multiníveis de dados de dados multiIndex em colunas simples de dados de dados.

Como pode ser visto na saída, todos os níveis de índices são convertidos com sucesso na coluna DataFrame. Ao contrário da função reset_index (), não podemos achatar um índice específico para a coluna. Quando é aplicado ao DataFrame, ele divide todos os índices multi para colunas de dados de dados.

Conclusão

Neste tutorial, vimos que o MultiIndex é um conjunto de métodos sofisticados de indexação para quadros de dados. Permite que os índices tenham numerosos níveis. Aprendemos a criar um multiindex com tuplas e matrizes usando as funções From_Tuples () e From_array (), respectivamente, respectivamente. Implementamos os exemplos para ensiná -lo a achatar o multindex de todos os níveis e níveis específicos usando a função Reset_index () e To_records ().