Plusieurs fois dans la bibliothèque pandas
, il existe une option pour modifier l'objet in-situ, comme avec l'instruction suivante ...
df.dropna(axis='index', how='all', inplace=True)
Je suis curieux de savoir ce qui est renvoyé et comment l’objet est traité lorsque inplace=True
est transmis par rapport à quand inplace=False
.
Toutes les opérations modifiant self
lorsque inplace=True
? Et quand inplace=False
est un nouvel objet créé immédiatement, tel que new_df = self
puis new_df
est renvoyé?
Lorsque inplace=True
est transmis, les données sont renommées à la place (elles ne renvoient rien). Vous devez donc utiliser:
df.an_operation(inplace=True)
Lorsque inplace=False
est passé (il s'agit de la valeur par défaut, il n'est donc pas nécessaire), effectue l'opération et renvoie une copie de l'objet. Vous devez donc utiliser:
df = df.an_operation(inplace=False)
Alors:
if inplace == False:
Assign your result to a new variable
else
No need to assign
La façon dont je l'utilise est
# Have to assign back to dataframe (because it is a new copy)
df = df.some_operation(inplace=False)
Ou
# No need to assign back to dataframe (because it is on the same copy)
df.some_operation(inplace=True)
CONCLUSION:
if inplace is False
Assign to a new variable;
else
No need to assign
J'utilise habituellement avec numpy.
vous utilisez inplace = True, si vous ne souhaitez pas enregistrer les données mises à jour dans la même variable
data["column1"].where(data["column1"]< 5, inplace=True)
c'est pareil que ...
data["column1"] = data["column1"].where(data["column1"]< 5)