Quelle est la ligne directrice pour l'utilisation de inplace
?lignes directrices sur l'utilisation des pandas inplace argument argument
Par exemple,
df = df.reset_index()
ou
df.reset_index(inplace=True)
même mais différent même?
Quelle est la ligne directrice pour l'utilisation de inplace
?lignes directrices sur l'utilisation des pandas inplace argument argument
Par exemple,
df = df.reset_index()
ou
df.reset_index(inplace=True)
même mais différent même?
En termes de DataFrame résultant df
, les deux approches sont les mêmes. La différence réside dans l'utilisation de la mémoire (maximale), car la version in-situ ne crée pas de copie du DataFrame.
considérerais cette configuration:
import numpy as np
import pandas as pd
def make_data():
return pd.DataFrame(np.random.rand(1000000, 100))
def func_copy():
df = make_data()
df = df.reset_index()
def func_inplace():
df = make_data()
df.reset_index(inplace=True)
Nous pouvons utiliser la bibliothèque memory_profile
pour effectuer une analyse comparative pour l'utilisation de la mémoire:
%load_ext memory_profiler
%memit func_copy()
# peak memory: 1602.66 MiB, increment: 1548.66 MiB
%memit func_inplace()
# peak memory: 817.02 MiB, increment: 762.94 MiB
Comme prévu, la version en place est plus efficace mémoire.
D'autre part, il semble aussi être une différence non négligeable dans le temps en cours d'exécution entre les approches lorsque la taille des données est assez grand (par exemple, dans l'exemple ci-dessus):
%timeit func_copy()
1 loops, best of 3: 2.56 s per loop
%timeit func_inplace()
1 loops, best of 3: 1.35 s per loop
Ces différences peuvent ou peut ne pas être significatif selon le cas d'utilisation (par exemple, analyse exploratoire adhoc par rapport au code de production), la taille des données et la ressource matérielle disponible. En général, il peut être judicieux d'utiliser la version en place chaque fois que possible pour améliorer l'efficacité de la mémoire et de l'exécution.
'df.reset_index (inplace = True)' renvoie Aucun. Fyi - – user3659451
Bon, merci de m'avoir signalé. –
Même chose. Je préfère la première façon de faciliter la lecture à côté d'autres lignes qui n'agissent pas sur une base de données inplace. – itzy