quinta-feira, 23 de julho de 2020

Criando e deletando colunas no Pandas

Quando trabalhamos com dados em algum momento vamos precisar criar uma coluna para adicionar novos dados. Na grande maioria dos casos essa nova coluna será criada num dataframe já existente. Com a biblioteca Pandas podemos criar colunas de maneiras diferentes.
Nesse post, vamos criar novas colunas com o método assign() e deletar colunas, que não vamos precisar, com o método drop().

Como criar colunas com Pandas

Para criar uma nova coluna vamos atribuir um valor a um índice. É importante lembra que não vamos criar um dataframe novo, mas sim modificando o atual. Quando atribuir um valor a coluna, o valor passado será usado para todos os elementos da coluna. Vamos criar uma coluna indicando se já vimos o filme. Por padrão as novas colunas são adicionadas no final.

>>> import pandas as pd
>>> filmes = pd.read_csv('filmes.csv')
>>> filmes['assistido'] = 0

Mesmo o exemplo acima funcionando e sendo bastante comum, ainda podemos usar o método assign(). Usando esse método um novo dataframe será criado com uma coluna a mais. O método usa o nome do parâmetro como o novo nome da coluna, então o novo nome deve ser um nome valido para um parâmetro.

>>> filmes = filmes.drop(columns='assistido')
>>> filmes.assign(assistido = 0)
      indice  codigo_obra  ... data_exibicao assistido
0          0        15639  ...     06/jul/12         0
1          1         7603  ...     13/jul/04         0
2          2        26453  ...    26/09/2007         0
3          3        17284  ...    16/12/2002         0
4          4         4806  ...     15/jan/03         0
...      ...          ...  ...           ...       ...
9257    9257     16001794  ...     09/jul/20         0
9258    9258     15000966  ...     25/nov/19         0
9259    9259     19002684  ...    14/02/2020         0
9260    9260       609762  ...    20/12/2019         0
9261    9261     19005137  ...    18/10/2019         0

[9262 rows x 10 columns]

Para remover uma coluna vamos usar o método drop(). O método drop() recebe o nome da coluna que queremos excluir do dataframe através do parâmetro columns. Veja um exemplo:

>>> filmes.drop(columns = 'assistido')

Repare que o método drop() cria um novo dataframe, assim como o método assign().
Uma alternativa ao método drop() é com a declaração del.

    del filmes[‘diretor’]

Tem mais...

Se você quiser adicionar uma coluna entre outras já existentes, o método que você deve utilizar é o insert(). Esse método recebe três parâmetros: o primeiro deve ser um inteiro com a posição da nova coluna; o segundo, o nome da nova coluna; e o terceiro os valores da coluna.

>>> filmes.insert(
... loc=6,
... column='nova',
... value=42
... )
>>> filmes.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 9262 entries, 0 to 9261
Data columns (total 11 columns):
 #   Column                   Non-Null Count  Dtype
---  ------                   --------------  -----
 0   indice                   9262 non-null   int64
 1   codigo_obra              9262 non-null   int64
 2   titulo_original          9262 non-null   object
 3   titulo_brasil            9262 non-null   object
 4   ano_producao             9259 non-null   float64
 5   diretor                  9262 non-null   object
 6   nova                     9262 non-null   int64
 7   razao_social_requerente  9262 non-null   object
 8   cnpj_requerente          9262 non-null   object
 9   data_exibicao            9262 non-null   object
 10  assistido                9262 non-null   object
dtypes: float64(1), int64(3), object(7)
memory usage: 542.8+ KB

Nesse exemplo, adicionamos uma coluna depois da coluna ‘diretor’, na posição seis (lembre-se que o índice começa em zero). E adicionamos o valor quarenta e dois para todos os elementos dessa coluna. O parâmetro value aceita números inteiros, séries ou arrays.

0 comentários:

Postar um comentário