Heim > Backend-Entwicklung > Python-Tutorial > Wie kann man einen bestimmten Zellenwert in einem Pandas-DataFrame effizient festlegen?

Wie kann man einen bestimmten Zellenwert in einem Pandas-DataFrame effizient festlegen?

Linda Hamilton
Freigeben: 2024-12-01 17:28:11
Original
438 Leute haben es durchsucht

How to Efficiently Set a Specific Cell Value in a Pandas DataFrame?

Wert für eine bestimmte Zelle in einem Pandas-DataFrame festlegen

Sie haben einen DataFrame erstellt und möchten den Wert einer bestimmten Zelle ändern . Die Verwendung von df.xs('C')['x'] = 10 aktualisiert den DataFrame jedoch nicht wie erwartet. Warum?

Das Problem ergibt sich aus der Funktionsweise von df.xs(). Standardmäßig wird ein neuer DataFrame mit einer Kopie der Daten zurückgegeben. df.xs('C')['x'] = 10 ändert also nur den neuen DataFrame, nicht das Original.

Stattdessen können Sie df['x']['C'] = verwenden 10. Diese Methode gibt eine Ansicht des ursprünglichen DataFrame zurück und alle Änderungen werden auf df angewendet.

Der empfohlene Ansatz ist jedoch die Verwendung von .at oder .iat:

  • df.at['C', 'x'] = 10: Setzt den Wert direkt in Zeile 'C' und Spalte 'x'.
  • df. iat[2, 0] = 10: Greift auf die Zelle über ihre Indexposition zu (2 für Zeile, 0 für Spalte).

Warum ist df.xs('C')['x'] = 10 veraltet?

df.set_value('C' , 'x', 10) ist die bevorzugte Methode, da sie deutlich schneller ist. df.set_value() wird jedoch voraussichtlich nicht mehr unterstützt.

Leistungsvergleich

Benchmarks zeigen, dass df.set_value() andere Optionen in Bezug auf Geschwindigkeit übertrifft:

In [18]: %timeit df.set_value('C', 'x', 10)
100000 loops, best of 3: 2.9 µs per loop

In [20]: %timeit df['x']['C'] = 10
100000 loops, best of 3: 6.31 µs per loop

In [81]: %timeit df.at['C', 'x'] = 10
100000 loops, best of 3: 9.2 µs per loop
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann man einen bestimmten Zellenwert in einem Pandas-DataFrame effizient festlegen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage