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:
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
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!