top of page
  • Foto do escritorGabriel Quintella

Python com Pandas, Listando colunas de um DataFrame

Fala meu amigo, você aqui de novo? Ótimo! Obrigado por acreditar em meu trabalho e depositar mais um crédito.


Trago para você hoje, uma forma rápida e simples para que você consiga listar todas as colunas de um dataframe.


Solto uma pergunta para você responder! Vamos lá...


Mais por que listar quais colunas existem em um dataframe pode ser útil para você? Que valor irá agregar no seu trabalho? Bem, vou tentar responder de uma forma simples e bacana, segue comigo aqui...


Em exemplos reais, ou seja, no seu dia-a-dia, encontramos grandes conjuntos de dados podendo em alguns casos conter um grande número de linhas e colunas. Onde para trabalharmos, precisamos estar familiarizados ou poder de alguma forma identificar as linhas, colunas, e seus data types. Em muitos casos pode até existir a necessidade de armazenar os nomes das colunas para facilitar a extração em um momento futuro e até mesmo em outra utilização.


Em algumas situações, utilizamos o comando dataframe.columns para exibir os nomes das colunas de um DataFrame. Mais nem tudo pode ser tão simples quanto parece. Quando manipulamos um pequeno conjunto de dados, o resultado é ótimo, mas se estivermos o nosso cenário for de um DataFrame com mais de uma centena de colunas, este método pode revelar-se não tão eficiente.


O exemplo seguinte ilustrará o problema com dataframe.columns:


import pandas as pd
import numpy as np

dfTeste = pd.DataFrame(columns = np.arange(150))
print('dataframe: ' + str(dfTeste.columns))
type(dfTeste.columns)

Analise o output gerado.


dataframe: Int64Index([  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,             ...             140, 141, 142, 143, 144, 145, 146, 147, 148, 149],            dtype='int64', length=150) 
Out[57]:
pandas.core.indexes.numeric.Int64Index

De forma resumida, no exemplo, criamos um DataFrame com 150 colunas de 0-149, e analisando o output, não é possível visualizar todas as as colunas, pois após a coluna 9 entra um "..." (reticências) e vai direto para a coluna 140.


Para contornar esse transtorno, a melhor forma de trabalhar é converter o resultado do comando dataframe.columns para uma lista usando o método list() ou tolist(), esse comando irá retornar todas as colunas do DataFrame.


import pandas as pd
import numpy as np

dfTeste = pd.DataFrame(columns = np.arange(150))
print('dataframe: ' + str(dfTeste.columns))
print(list(dfTeste.columns))

import pandas as pd
import numpy as np

dfTeste = pd.DataFrame(columns = np.arange(150))
print('dataframe: ' + str(dfTeste.columns))
print(dfTeste.columns.tolist())

Repare como que ficou claro agora o output.


dataframe: Int64Index([  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,
            ...
            140, 141, 142, 143, 144, 145, 146, 147, 148, 149],
           dtype='int64', length=150)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149]

Agora é possível analisar todas as colunas do nosso dataframe.


Uma outra abordagem para esse cenário, consiste na utilização de um Numpy Array. É muito simples a sua aplicação.


Vamos recriar o nosso dataframe com as 150 colunas.


import pandas as pd
import numpy as np

dfTeste = pd.DataFrame(columns = np.arange(150))
print('dataframe: ' + str(dfTeste.columns))
type(dfTeste.columns)

Já é do nosso conhecimento que ao aplicar o comando dataframe.columns, em nosso caso dfTeste.columns, apenas um pedaço do nosso resultado é apresentado.


Quando utilizamos o o NumPy Array, vamos adicionar nesse comando a expressão ".values".


Vamos aplicar e analisar o output gerado.


import pandas as pd
import numpy as np

dfTeste = pd.DataFrame(columns = np.arange(150))
print('dataframe: ' + str(df.columns))
print(df.columns.values)

Sucesso! Analisa comigo.


dataframe: Int64Index([  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,
            ...
            140, 141, 142, 143, 144, 145, 146, 147, 148, 149],
           dtype='int64', length=150)
[  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17
  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35
  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53
  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71
  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89
  90  91  92  93  94  95  96  97  98  99 100 101 102 103 104 105 106 107
 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
 144 145 146 147 148 149]

Vamos criar um outro dataframe listar as suas colunas porém agora vamos usar o método info().


dfCarros=pd.DataFrame([
['Gol','Volksvagen'],
['Golf','Volksvagen'],
['Voyage','Volksvagen'],
['Jetta','Volksvagen'],
['Ford Ka','Ford'],
['Uno Mile','Fiat'],
['Argo','Fiat'],
['Sandero','Renault'],
['Duster','Renault'],
['Fusca',np.nan]
], 
columns=['Modelo','Marca'])

Após a sua criação basta executar o comando abaixo para retornar a estrutura do dataframe.


dfCarros.info()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 10 entries, 0 to 9
Data columns (total 2 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   Modelo  10 non-null     object
 1   Marca   9 non-null      object
dtypes: object(2)
memory usage: 288.0+ bytes

Simples assim meu amigo!


Agora com esse pequeno e grandioso conteúdo, você passou a ser capaz de destrinchar a estrutura de um dataframe, o que tenho certeza que será extremamente grandioso e enriquecedor para o seu trabalho.


Espero que tenha gostado, aguardo você no nosso próximo post!


Grande abraço!

129 visualizações0 comentário

Posts recentes

Ver tudo

Komentáře


bottom of page