Iterieren durch Spalten eines Pandas DataFrame

Manav Narula 30 Januar 2023
  1. Verwenden Sie die getitem ([]) Syntax, um über Spalten in Pandas DataFrame zu iterieren
  2. Verwenden Sie dataframe.iteritems(), um über Spalten in Pandas Dataframe zu iterieren
  3. Mit enumerate() über Pandas-Spalten iterieren
Iterieren durch Spalten eines Pandas DataFrame

DataFrames können sehr groß sein und Hunderte von Zeilen und Spalten enthalten. Es ist notwendig, über Spalten eines DataFrames zu iterieren und Operationen auf einzelnen Spalten durchzuführen, wie z. B. Regression und vieles mehr.

Wir können die for-Schleife verwenden, um über die Spalten eines DataFrame zu iterieren. Die grundlegende Syntax der for-Schleife ist unten angegeben:

for value in sequence:
    # Body of Loop

Wir können mehrere Methoden verwenden, um die for-Schleife über einen DataFrame laufen zu lassen, z. B. die getitem-Syntax (die []), die dataframe.iteritems()-Funktion, die enumerate()-Funktion und die Verwendung des Index eines DataFrame.

Verwenden Sie die getitem ([]) Syntax, um über Spalten in Pandas DataFrame zu iterieren

Wir können Spalten-Labels verwenden, um die for-Schleife über den DataFrame mit der getitem-Syntax ([]) auszuführen. Ein Beispiel:

import pandas as pd

df = pd.DataFrame(
    [[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)

print(df)
print("------------------")
for column in df:
    print(df[column].values)

Ausgabe:

    a  b   c   d
0  10  6   7   8
1   1  9  12  14
2   5  8  10   6
------------------
[10  1  5]
[6 9 8]
[ 7 12 10]
[ 8 14  6]

Die Funktion values() wird verwendet, um die Elemente des Objekts als Liste zu extrahieren.

Verwenden Sie dataframe.iteritems(), um über Spalten in Pandas Dataframe zu iterieren

Pandas stellt die Funktion dataframe.iteritems() zur Verfügung, die dabei hilft, über einen DataFrame zu iterieren und den Spaltennamen und dessen Inhalt als Reihe zurückgibt.

import pandas as pd

df = pd.DataFrame(
    [[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)

for (colname, colval) in df.iteritems():
    print(colname, colval.values)

Ausgabe:

a [10  1  5]
b [6 9 8]
c [ 7 12 10]
d [ 8 14  6]

Mit enumerate() über Pandas-Spalten iterieren

Die Funktion enumerate() mit DataFrame liefert den Index und die Spaltenbezeichnung, womit wir darüber iterieren können.

import pandas as pd

df = pd.DataFrame(
    [[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)

for (index, colname) in enumerate(df):
    print(index, df[colname].values)

Ausgabe:

0 [10  1  5]
1 [6 9 8]
2 [ 7 12 10]
3 [ 8 14  6]

Wir können sehr effizient jede der oben genannten Methoden verwenden, um über den DataFrame zu iterieren. Wir können auch Operationen wie Regressionen über einzelne Spalten ausführen. Zum Beispiel können wir die letzte Spalte als unabhängige Variable festlegen und OLS-Regressionen mit anderen Spalten als abhängige Variablen durchführen, wie im folgenden Beispiel gezeigt:

import pandas as pd
import statsmodels.api as sm
import numpy as np

df = pd.DataFrame(
    [[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)

for column in df:
    Y = df["d"]
    X = df[column]
    X = sm.add_constant(X)
    model = sm.OLS(X, Y)
    results = model.fit()
    print(results.params)

Ausgabe:

          0         1
d  0.094595  0.418919
          0     1
d  0.094595  0.75
          0         1
d  0.094595  0.959459
          0    1
d  0.094595  1.0
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Verwandter Artikel - Pandas DataFrame