Método Pandas insert

Suraj Joshi 30 enero 2023
  1. Método pandas.DataFrame.insert() en Python
  2. Establecer allow_duplicates = True en el método insert() para añadir una columna ya existente
Método Pandas insert

Este tutorial explica cómo podemos utilizar el método insert() para un DataFrame de Pandas para insertar una columna en el 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")

Producción :

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

Utilizaremos el DataFrame countries_df mostrado en el ejemplo anterior para explicar cómo podemos utilizar el método insert() para un DataFrame de Pandas para insertar una columna en el DataFrame.

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

Sintaxis

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

Inserta la columna llamada column en el DataFrame con los valores especificados por value en la ubicación loc.

Insertar una columna con el mismo valor para todas las filas utilizando el 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")

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

Inserta la columna Capital en el DataFrame de countries_df en la posición 3 con el mismo valor de la columna para todas las filas establecido en Unknown.

La posición comienza en 0 y, por tanto, la posición 3 se refiere a la columna del DataFrame.

Insertar una columna en un DataFrame especificando el valor de cada fila

Si queremos especificar los valores de cada fila para la columna a insertar usando el método insert(), podemos pasar una lista de valores como argumento value en el 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

Inserta la columna Capital en el DataFrame countries_df en la posición 2 con los valores especificados de cada fila para la columna Capital en el DataFrame.

Establecer allow_duplicates = True en el método insert() para añadir una columna ya 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

Añade la columna Capital al DataFrame countries_df aunque la columna Capital ya existe en el DataFrame countries_df.

Si intentamos insertar la columna que ya existe en el DataFrame sin establecer allow_duplicates = True en el método insert(), nos dará un error con el mensaje ValueError: cannot insert column, already exists.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Artículo relacionado - Pandas DataFrame Column