[PYTHON] Praktische Funktion zum Hinzufügen von Spalten an einer beliebigen Stelle in Pandas DataFrame

Wenn Sie irgendwo im Pandas DataFrame eine Spalte hinzufügen möchten, verwenden Sie pandas.DataFrame.insert. Es kann erreicht werden, indem es verwendet wird, aber es gibt einige Beschwerden.

Ich habe eine praktische Funktion geschrieben, um diese Probleme zu lösen.

Implementierung

from typing import Union, Optional
import pandas as pd


def insert_columns(
        df: pd.DataFrame,
        data: Union[pd.Series, pd.DataFrame],
        *,
        before: Optional[str] = None,
        after: Optional[str] = None,
        allow_duplicates: bool = False,
        inplace: bool = False,
    ) -> pd.DataFrame:

    if not inplace:
        df = df.copy()

    if not (after is None) ^ (before is None):
        raise ValueError('Specify only "before" or "after"')

    if before:
        loc = df.columns.get_loc(before)
    else:
        loc = df.columns.get_loc(after) + 1

    if type(data) is pd.Series:
        df.insert(loc, data.name, data, allow_duplicates)
    elif type(data) is pd.DataFrame:
        for column in data.columns[::-1]:
            df.insert(loc, column, data[column], allow_duplicates)

    return df

Wie benutzt man

Verwenden Sie den Iris-Datensatz von sklearn als Beispieldaten.

from sklearn import datasets

iris = datasets.load_iris()

df = pd.DataFrame(iris.data, columns=iris.feature_names)
target = pd.Series(iris.target_names[iris.target], name='target')
df.head()

image.png

target.head()

image.png

Versuchen Sie, das Ziel nach "Kelchblattbreite (cm)" in df hinzuzufügen.

insert_columns(df, target, after='sepal width (cm)')

image.png

In diesem Beispiel wird Series hinzugefügt, es kann jedoch auch DataFrame angegeben werden.

Recommended Posts

Praktische Funktion zum Hinzufügen von Spalten an einer beliebigen Stelle in Pandas DataFrame
So erhalten Sie mit pandas DataFrame einen bestimmten Spaltennamen und Indexnamen
Funktion zum Zurückgeben mehrerer Spalten an einzelne Spalten in DataFrame
Kombinieren Sie Listen zu einem DataFrame mit Pandas
[Python] So fügen Sie einer Tabelle Zeilen und Spalten hinzu (pandas DataFrame)
So weisen Sie den Index im Pandas-Datenrahmen neu zu
[Pandas_flavor] Fügen Sie eine Methode von Pandas DataFrame hinzu
[Python] Fügen Sie Pandas DataFrame insgesamt Zeilen hinzu
So finden Sie eine Spalte eines bestimmten Typs (str, float usw.) aus einer Spalte in einem DataFrame
So fügen Sie Python ein Modul hinzu, das Sie in Julialang eingefügt haben
Fügen Sie mit Pandas Summen zu Zeilen und Spalten hinzu
Wie man eine öffentliche Funktion in Pytest verspottet
Überprüfen Sie, ob die erwartete Spalte in Pandas DataFrame vorhanden ist
Konvertieren Sie durch Kommas getrennte numerische Zeichenfolgen in Zahlen in Pandas DataFrame
So zeigen Sie DataFrame als Tabelle in Markdown an
Covector, um in Funktion zu denken
Erstellen Sie eine Funktion in Python
Fügen Sie MeCab ein Wörterbuch hinzu
So rufen Sie eine Funktion auf
So importieren Sie Dateien in Python an eine beliebige Stelle
Einfallsreichtum beim speichersparenden Umgang mit Daten mit Pandas
So geben Sie char * in einer Rückruffunktion mit ctypes in Python zurück
Erstellen wir eine Funktion, um die Schaltfläche in Tkinter gedrückt zu halten
Exportieren Sie den Pandas-Datenrahmen nach Excel
python / pandas / dataframe / So erhalten Sie die einfachste Zeile / Spalte / Index / Spalte
Ich habe eine Funktion zum Laden des Git-Erweiterungsskripts in Python geschrieben
So ermitteln Sie die Speicheradresse des Pandas-Datenrahmenwerts
<Pandas> Umgang mit Zeitreihendaten in der Pivot-Tabelle
Ich möchte die zweite Zeile zum Spaltennamen in Pandas machen
Erstellen Sie eine Funktion, um den Inhalt der Datenbank in Go abzurufen
Funktion zum Konvertieren von Excel-Spalten in Zahlen
So fügen Sie MicroPython ein C-Modul hinzu ...
Wie man nüchtern mit Pandas schreibt
Erstellen Sie einen Pandas-Datenrahmen aus einer Zeichenfolge.
So erstellen Sie eine rekursive Funktion
Pandas Extrahieren Sie Elemente nach Spaltenname x Zeilennummer
Datenrahmen aktualisieren
Ersetzen Sie Spaltennamen / -werte durch Pandas-Datenrahmen
So erhalten Sie mit pandas DataFrame einen bestimmten Spaltennamen und Indexnamen
[Python] Sortieren Sie die Tabelle nach sort_values (pandas DataFrame)
Nach Pandas sortieren
Überprüfen Sie, ob die erwartete Spalte in Pandas DataFrame vorhanden ist
Python-Anwendung: Pandas # 3: Dataframe
Praktische Funktion zum Hinzufügen von Spalten an einer beliebigen Stelle in Pandas DataFrame
[Python / Tkinter] Suche nach Pandas DataFrame → Erstellen Sie ein einfaches Suchformular zur Anzeige
Es wurde eine Funktion hinzugefügt, um gewünschte Verschiebungen in der Django-Verschiebungstabelle zu registrieren
Sortieren durch Angabe einer Spalte im Python Numpy-Array.
Fügen Sie Ihrem Computer eine GPIO-Karte hinzu. (1)
So teilen und speichern Sie einen DataFrame
Ich möchte in der Einschlussnotation drucken
Vorsichtsmaßnahmen beim Beizen einer Funktion in Python
So fügen Sie ein Paket mit PyCharm hinzu
Ein einfaches IDAPython-Skript zum Benennen einer Funktion
Wie bekomme ich Stacktrace in Python?
Fügen Sie in Jupyter IPerl zum Kernel hinzu.
[Pandas] Erweitern Sie die Zeichenfolgen zu DataFrame
[Python] Pandas in 10 Minuten vollständig zu verstehen
Starten Sie eine Flask-App in Python Anywhere
[V11 ~] Ein Memorandum für Misskey
Ersetzen Sie Spaltennamen / -werte durch Pandas-Datenrahmen
Erstellen Sie mit Pandas einen Datenrahmen aus Excel
Lesen von CSV-Dateien mit Pandas
Hinzufügen von Serien zur Spalte in Python-Pandas
Laden Sie Pandas DataFrame als CSV-Datei herunter
Fügen Sie VSCode eine virtuelle Python-Umgebung hinzu