Método de insert de Pandas

Suraj Joshi 30 janeiro 2023
  1. pandas.DataFrame.insert() Método em Python
  2. Defina allow_duplicates = True no método insert() para adicionar uma coluna já existente
Método de insert de Pandas

Este tutorial explica como podemos utilizar o método insert() de um Pandas DataFrame para inserir uma coluna no DataFrame.

import pandas as pd

countries_df = pd.DataFrame(
    {
        "Country": ["Nepal", "Switzerland", "Germany", "Canada"],
        "Continent": ["Asia", "Europe", "Europe", "North America"],
        "Primary Language": ["Nepali", "French", "German", "English"],
    }
)
print("Countries DataFrame:")
print(countries_df, "\n")

Resultado:

Countries DataFrame:
       Country      Continent Primary Language
0        Nepal           Asia           Nepali
1  Switzerland         Europe           French
2      Germany         Europe           German
3       Canada  North America          English

Vamos utilizar o countries_df DataFrame mostrado no exemplo acima para explicar como podemos utilizar o método insert() para um Pandas DataFrame para inserir uma coluna no DataFrame.

pandas.DataFrame.insert() Método em Python

Sintaxe

DataFrame.insert(loc, column, value, allow_duplicates=False)

Insere a coluna chamada column no DataFrame com valores especificados por value no localização loc.

Insere uma coluna com o mesmo valor para todas as linhas utilizando o insert() Método

import pandas as pd

countries_df = pd.DataFrame(
    {
        "Country": ["Nepal", "Switzerland", "Germany", "Canada"],
        "Continent": ["Asia", "Europe", "Europe", "North America"],
        "Primary Language": ["Nepali", "French", "German", "English"],
    }
)
print("Countries DataFrame:")
print(countries_df, "\n")

countries_df.insert(3, "Capital", "Unknown")

print("Countries DataFrame after inserting Capital column:")
print(countries_df)

Resultado:

Countries DataFrame:
       Country      Continent Primary Language
0        Nepal           Asia           Nepali
1  Switzerland         Europe           French
2      Germany         Europe           German
3       Canada  North America          English

Countries DataFrame after inserting Capital column:
       Country      Continent Primary Language  Capital
0        Nepal           Asia           Nepali  Unknown
1  Switzerland         Europe           French  Unknown
2      Germany         Europe           German  Unknown
3       Canada  North America          English  Unknown

Insere a coluna Capital no countries_df DataFrame na posição 3 com o mesmo valor da coluna para todas as linhas definidas como Unknown.

A posição começa a partir de 0 e portanto a posição 3 refere-se à coluna na DataFrame.

Inserir uma coluna numa DataFrame especificando o valor para cada linha

Se quisermos especificar os valores de cada linha para a coluna a ser inserida utilizando o método insert(), podemos passar uma lista de valores como argumento de valor no método insert().

import pandas as pd

countries_df = pd.DataFrame(
    {
        "Country": ["Nepal", "Switzerland", "Germany", "Canada"],
        "Continent": ["Asia", "Europe", "Europe", "North America"],
        "Primary Language": ["Nepali", "French", "German", "English"],
    }
)
print("Countries DataFrame:")
print(countries_df, "\n")

capitals = ["Kathmandu", "Zurich", "Berlin", "Ottawa"]

countries_df.insert(2, "Capital", capitals)

print("Countries DataFrame after inserting Capital column:")
print(countries_df)

Resultado:

Countries DataFrame:
       Country      Continent Primary Language
0        Nepal           Asia           Nepali
1  Switzerland         Europe           French
2      Germany         Europe           German
3       Canada  North America          English

Countries DataFrame after inserting Capital column:
       Country      Continent    Capital Primary Language
0        Nepal           Asia  Kathmandu           Nepali
1  Switzerland         Europe     Zurich           French
2      Germany         Europe     Berlin           German
3       Canada  North America     Ottawa          English

Insere-se a coluna Capital na DataFrame countries_df na posição 2 com valores especificados de cada linha para a coluna Capital na DataFrame.

Defina allow_duplicates = True no método insert() para adicionar uma coluna já existente

import pandas as pd

countries_df = pd.DataFrame(
    {
        "Country": ["Nepal", "Switzerland", "Germany", "Canada"],
        "Continent": ["Asia", "Europe", "Europe", "North America"],
        "Primary Language": ["Nepali", "French", "German", "English"],
        "Capital": ["Kathmandu", "Zurich", "Berlin", "Ottawa"],
    }
)
print("Countries DataFrame:")
print(countries_df, "\n")

capitals = ["Kathmandu", "Zurich", "Berlin", "Ottawa"]

countries_df.insert(4, "Capital", capitals, allow_duplicates=True)

print("Countries DataFrame after inserting Capital column:")
print(countries_df)

Resultado:

Countries DataFrame:
       Country      Continent Primary Language    Capital
0        Nepal           Asia           Nepali  Kathmandu
1  Switzerland         Europe           French     Zurich
2      Germany         Europe           German     Berlin
3       Canada  North America          English     Ottawa

Countries DataFrame after inserting Capital column:
       Country      Continent Primary Language    Capital    Capital
0        Nepal           Asia           Nepali  Kathmandu  Kathmandu
1  Switzerland         Europe           French     Zurich     Zurich
2      Germany         Europe           German     Berlin     Berlin
3       Canada  North America          English     Ottawa     Ottawa

Adiciona a coluna Capital ao DataFrame, embora a coluna Capital já exista no DataFrame.

Se tentarmos inserir a coluna que já existe no DataFrame sem definir allow_duplicates = True no método insert(), isso irá lançar-nos um erro com a mensagem: ValueError: cannot insert column, already exists.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artigo relacionado - Pandas DataFrame Column