Metodo di inserimento dei Pandas

Suraj Joshi 30 gennaio 2023
  1. Metodo pandas.DataFrame.insert() in Python
  2. Imposta allow_duplicates = True nel metodo insert() per aggiungere una colonna già esistente
Metodo di inserimento dei Pandas

Questo tutorial spiega come possiamo usare il metodo insert() per un Pandas DataFrame per inserire una colonna nel 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")

Produzione:

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

Useremo il DataFrame countries_df mostrato nell’esempio sopra per spiegare come possiamo usare il metodo insert() per un DataFrame Pandas per inserire una colonna nel DataFrame.

Metodo pandas.DataFrame.insert() in Python

Sintassi

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

Inserisce la colonna denominata column nel DataFrame con i valori specificati da value nella posizione loc.

Inserire una colonna con lo stesso valore per tutte le righe utilizzando il metodo 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)

Produzione:

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

Inserisce la colonna Capital nel DataFrame countries_df alla posizione 3 con lo stesso valore della colonna per tutte le righe impostato su Unknown.

La posizione inizia da 0 e quindi la posizione 3 si riferisce alla colonna 4a nel DataFrame.

Inserire una colonna in un DataFrame specificando il valore per ogni riga

Se vogliamo specificare i valori di ogni riga per la colonna da inserire usando il metodo insert(), possiamo passare una lista di valori come argomento value nel metodo 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)

Produzione:

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

Inserisce la colonna Capital nel DataFrame countries_df alla posizione 2 con i valori specificati di ogni riga per la colonna Capital nel DataFrame.

Imposta allow_duplicates = True nel metodo insert() per aggiungere una colonna già esistente

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)

Produzione:

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

Aggiunge la colonna Capital al DataFrame countries_df anche se la colonna Capital esiste già nel DataFrame countries_df.

Se proviamo a inserire la colonna che già esiste nel DataFrame senza impostare allow_duplicates = True nel metodo insert(), verrà generato un errore con il messaggio: ValueError: cannot insert column, already exists..

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Articolo correlato - Pandas DataFrame Column