Pandas insert-Methode

Suraj Joshi 30 Januar 2023
  1. pandas.DataFrame.insert() Methode in Python
  2. Setzen Sie allow_duplicates = True in der Methode insert(), um eine bereits existierende Spalte hinzuzufügen
Pandas insert-Methode

Dieses Tutorial erklärt, wie wir die Methode insert() für einen Pandas DataFrame verwenden können, um eine Spalte in den DataFrame einzufügen.

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")

Ausgabe:

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

Anhand des DataFrames countries_df aus dem obigen Beispiel wird erklärt, wie man die Methode insert() für einen Pandas DataFrame verwenden kann, um eine Spalte in den DataFrame einzufügen.

pandas.DataFrame.insert() Methode in Python

Syntax

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

Sie fügt die Spalte mit dem Namen column in den DataFrame mit den durch value angegebenen Werten an der Position loc ein.

Einfügen einer Spalte mit gleichem Wert für alle Zeilen mit der Methode 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)

Ausgabe:

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

Es wird die Spalte Capital in den DataFrame countries_df an Position 3 eingefügt, wobei für alle Zeilen der gleiche Wert der Spalte auf Unknown gesetzt wird.

Die Position beginnt bei 0 und somit bezieht sich die Position 3 auf die 4te Spalte im DataFrame.

Einfügen einer Spalte in einen DataFrame mit Angabe des Wertes für jede Zeile

Wenn wir die Werte jeder Zeile für die einzufügende Spalte mit der Methode insert() angeben wollen, können wir eine Liste von Werten als Argument value in der Methode insert() übergeben.

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)

Ausgabe:

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

Es wird die Spalte Capital in den DataFrame countries_df an der Position 2 mit den angegebenen Werten jeder Zeile für die Spalte Capital im DataFrame eingefügt.

Setzen Sie allow_duplicates = True in der Methode insert(), um eine bereits existierende Spalte hinzuzufügen

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)

Ausgabe:

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

Es wird die Spalte Capital zum DataFrame countries_df hinzugefügt, obwohl die Spalte Capital bereits im DataFrame countries_df existiert.

Wenn wir versuchen, die Spalte einzufügen, die bereits im DataFrame vorhanden ist, ohne in der Methode insert() die Option allow_duplicates = True zu setzen, wird ein Fehler mit der Meldung ausgegeben: ValueError: cannot insert column, already exists.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Verwandter Artikel - Pandas DataFrame Column