Adicionar nova coluna à DataFrame existente em Python Pandas

Ahmed Waheed 30 janeiro 2023 1 novembro 2020
  1. [] Método do operador para adicionar uma nova coluna em Pandas
  2. df.insert() Método para adicionar uma nova coluna em Pandas
  3. df.assign() Método para adicionar a nova coluna em Pandas
  4. df.loc() Método para adicionar uma nova coluna em Pandas
Adicionar nova coluna à DataFrame existente em Python Pandas

A adição de uma nova coluna ao DataFrame existente é usada com muita freqüência quando se trabalha com grandes conjuntos de dados. Por exemplo, a DataFrame existente tem colunas First, Last e Age, e precisamos adicionar uma nova coluna city a ela. Abaixo estão listadas as diferentes maneiras de realizar esta tarefa.

  1. Método do operador []
  2. df.insert() Método
  3. df.assign() Método
  4. df.loc() Método

Utilizaremos o mesmo DataFrame nas próximas seções como a seguir,

import pandas as pd
data = [
    ['Ali',
     'Azmat',
     '30'],
    ['Sharukh',
     'Khan',
     '40'],
    ['Linus',
     'Torvalds',
     '70']
]
df = pd.DataFrame(data,columns=['First','Last','Age'])
print(df)

Resultado:

     First      Last Age
0      Ali     Azmat  30
1  Sharukh      Khan  40
2    Linus  Torvalds  70

[] Método do operador para adicionar uma nova coluna em Pandas

Poderíamos utilizar o operador [] para adicionar uma nova coluna ao DataFrame existente.

import pandas as pd
data = [
    ['Ali',
     'Azmat',
     '30'],
    ['Sharukh',
     'Khan',
     '40'],
    ['Linus',
     'Torvalds',
     '70']
]
df = pd.DataFrame(data,columns=['First','Last','Age']) 
city = ['Lahore','Dehli','New York']
df['city'] = city
print(df)

Resultado:

     First      Last Age      city
0      Ali     Azmat  30    Lahore
1  Sharukh      Khan  40     Dehli
2    Linus  Torvalds  70  New York

df.insert() Método para adicionar uma nova coluna em Pandas

Você pode utilizar a função df.insert() se quiser adicionar a nova coluna em um índice específico. O primeiro parâmetro da função df.insert() é o índice de inserção a partir de zero.

import pandas as pd
data = [
    ['Ali',
     'Azmat',
     '30'],
    ['Sharukh',
     'Khan',
     '40'],
    ['Linus',
     'Torvalds',
     '70']
]
df = pd.DataFrame(data,columns=['First','Last','Age']) 
df.insert(3,"city",['Lahore','Dehli','New York'],True)
print(df)

Resultado:

     First      Last Age      city
0      Ali     Azmat  30    Lahore
1  Sharukh      Khan  40     Dehli
2    Linus  Torvalds  70  New York

df.assign() Método para adicionar a nova coluna em Pandas

df.assign() também pode ser utilizado para adicionar uma nova coluna a um DataFrame existente.

import pandas as pd

data = [
    ['Ali',
     'Azmat',
     '30'],
    ['Sharukh',
     'Khan',
     '40'],
    ['Linus',
     'Torvalds',
     '70']
]
df = pd.DataFrame(data,columns=['First','Last','Age']) 

df = df.assign(city = ['Lahore','Dehli','New York'])
print(df)

Resultado:

     First      Last Age      city
0      Ali     Azmat  30    Lahore
1  Sharukh      Khan  40     Dehli
2    Linus  Torvalds  70  New York

Vamos ver como adicionar múltiplas colunas utilizando df.assign(). O exemplo abaixo irá adicionar colunas city e score.

import pandas as pd

data = [
    ['Ali',
     'Azmat',
     '30'],
    ['Sharukh',
     'Khan',
     '40'],
    ['Linus',
     'Torvalds',
     '70']
]
df = pd.DataFrame(data,columns=['First','Last','Age']) 

df = df.assign(city = ['Lahore','Dehli','New York'], 
               score = [20,30,40])
print(df)

Resultado:

     First      Last Age      city  score
0      Ali     Azmat  30    Lahore     20
1  Sharukh      Khan  40     Dehli     30
2    Linus  Torvalds  70  New York     40

df.loc() Método para adicionar uma nova coluna em Pandas

O método df.loc() também pode adicionar uma nova coluna em um DataFrame existente.

import pandas as pd

data = [
    ['Ali',
     'Azmat',
     '30'],
    ['Sharukh',
     'Khan',
     '40'],
    ['Linus',
     'Torvalds',
     '70']
]
df = pd.DataFrame(data,columns=['First','Last','Age']) 
df.loc[:,'city'] = ['Lahore','Dehli','New York']
print(df)

Resultado:

     First      Last Age      city
0      Ali     Azmat  30    Lahore
1  Sharukh      Khan  40     Dehli
2    Linus  Torvalds  70  New York