Heim >Backend-Entwicklung >Python-Tutorial >Wie iteriere ich effizient über Zeilen in einem Pandas-DataFrame?

Wie iteriere ich effizient über Zeilen in einem Pandas-DataFrame?

Barbara Streisand
Barbara StreisandOriginal
2024-12-23 20:37:11327Durchsuche

How Do I Iterate Over Rows in a Pandas DataFrame Efficiently?

Iterieren über Zeilen in einem Pandas DataFrame

Iterieren über Zeilen in einem Pandas DataFrame ermöglicht Ihnen den Zugriff auf einzelne Zeilen und deren Elemente. Um dies zu erreichen, stellt Pandas zwei häufig verwendete Methoden bereit: DataFrame.iterrows und DataFrame.T.iteritems().

DataFrame.iterrows:

DataFrame.iterrows ist ein Generator, der sowohl den Index der Zeile als auch die Zeile selbst, dargestellt als Pandas-Serie, liefert. Der folgende Codeausschnitt demonstriert seine Verwendung:

import pandas as pd
df = pd.DataFrame({'c1': [10, 11, 12], 'c2': [100, 110, 120]})

for index, row in df.iterrows():
    print(row['c1'], row['c2'])

Dies wird ausgegeben:

10 100
11 110
12 120

DataFrame.T.iteritems():

DataFrame.T.iteritems() iteriert über die Spalten eines DataFrame. Das Transponieren des DataFrame mit .T und mit .iteritems() ergibt sowohl den Spaltennamen als auch die Zeile als Serie. Beachten Sie, dass dieser Ansatz im Allgemeinen weniger effizient ist als Iterrows:

for column_name, row in df.T.iteritems():
    print(column_name, row['c1'], row['c2'])

Dies wird Folgendes ausgeben:

c1 10 11 12
c2 100 110 120

Leistungsüberlegungen:

Iterating over Pandas-Objekte sind im Allgemeinen langsamer als vektorisierte Operationen oder Funktionsanwendungen mit der Methode apply(). Wenn die Leistung von entscheidender Bedeutung ist, sollten Sie die Verwendung von Cython oder Numba in Betracht ziehen, um die Leistung iterativer Operationen zu verbessern.

Das obige ist der detaillierte Inhalt vonWie iteriere ich effizient über Zeilen in einem Pandas-DataFrame?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn