Heim >Backend-Entwicklung >Python-Tutorial >Wie legt man Werte in Pandas DataFrame-Zellen effizient nach Index fest?

Wie legt man Werte in Pandas DataFrame-Zellen effizient nach Index fest?

Linda Hamilton
Linda HamiltonOriginal
2024-11-30 18:02:12586Durchsuche

How to Efficiently Set Values in Pandas DataFrame Cells by Index?

Werte in Pandas DataFrame-Zellen nach Index festlegen

Um einen bestimmten Zellenwert in einem Pandas DataFrame basierend auf seinem Index festzulegen, beachten Sie Folgendes :

Verwenden von df.set_value(index, Column, value)

df.set_value() ermöglicht es Ihnen, einer Zelle mithilfe ihres Index direkt einen Wert zuzuweisen. Beachten Sie jedoch, dass diese Methode bald nicht mehr unterstützt wird.

# Correct way:
df.set_value('C', 'x', 10)

Verwendung von df.at[index, Column] = value

Die bevorzugte Alternative ist die Verwendung von df .at[], um Zellwerte direkt zu aktualisieren. Diese Methode ist effizienter und bietet eine präzisere Syntax.

df.at['C', 'x'] = 10

Verkettende Indizierung verwenden

Achtung: Auch wenn es intuitiv erscheinen mag Verwenden Sie die verkettete Indizierung, um Zellwerte festzulegen (z. B. df.xs('C')['x'] = 10), nur diese Methode Ändert eine Kopie der Zeile oder Spalte. Um den ursprünglichen DataFrame direkt zu ändern, verwenden Sie entweder df.set_value() oder df.at[].

Warum die verkettete Indizierung fehlschlägt

Verkettete Indizierung (z. B. df. xs('C')['x'] = 10) erstellt ein neues DataFrame-Objekt mit einem Verweis auf die Originaldaten. An dieses neue Objekt vorgenommene Zuweisungen werden nicht an den ursprünglichen DataFrame weitergegeben.

Leistung

Benchmarks zeigen, dass df.set_value() die schnellste Option ist, gefolgt von df' x' = 10 und df.at['C', 'x'] = 10. Leistungsunterschiede können jedoch je nach DataFrame-Größe und variieren Komplexität.

Das obige ist der detaillierte Inhalt vonWie legt man Werte in Pandas DataFrame-Zellen effizient nach Index fest?. 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