web-dev-qa-db-de.com

Python Pandas - Inplace verstehen = True

In der Bibliothek pandas gibt es oft die Möglichkeit, das Objekt an der richtigen Stelle zu ändern, z. B. mit der folgenden Anweisung ...

df.dropna(axis='index', how='all', inplace=True)

Ich bin gespannt, was zurückgegeben wird und wie das Objekt behandelt wird, wenn inplace=True ist bestanden gegen wenn inplace=False.

Ändern alle Operationen self, wenn inplace=True? Und wann inplace=False ist ein neues Objekt, das sofort erstellt wird, z. B. new_df = self und dann new_df ist zurück gekommen?

44
Aran Freel

Wann inplace=True übergeben wird, werden die Daten an Ort und Stelle umbenannt (es gibt nichts zurück), so dass Sie Folgendes verwenden würden:

df.an_operation(inplace=True)

Wann inplace=False wird übergeben (dies ist der Standardwert, ist also nicht erforderlich), führt die Operation aus und gibt eine Kopie des Objekts zurück, sodass Sie Folgendes verwenden würden:

df = df.an_operation(inplace=False) 

Damit:

if inplace == False:
    Assign your result to a new variable
else
    No need to assign
57
ECH

So wie ich es benutze

# Have to assign back to dataframe (because it is a new copy)
df = df.some_operation(inplace=False) 

Oder

# No need to assign back to dataframe (because it is on the same copy)
df.some_operation(inplace=True)

FAZIT:

 if inplace is False
      Assign to a new variable;
 else
      No need to assign
29
Nabin

Ich benutze normalerweise mit Numpy.

sie verwenden inplace = True, wenn Sie die aktualisierten Daten nicht in derselben Variablen speichern möchten

data["column1"].where(data["column1"]< 5, inplace=True)

das ist das gleiche wie ...

data["column1"] = data["column1"].where(data["column1"]< 5)
1
hyukkyulee