Comprendre les règles de Pandas pour l'affichage et la copie
Lorsque vous traitez des trames de données dans Pandas, il est crucial de comprendre la distinction entre les vues et les copies. Cette distinction détermine si les modifications apportées à un sous-ensemble d'un dataframe affectent le dataframe d'origine.
Règles régissant la vue et la création de copie
-
Copie :
- Toutes les opérations, à l'exception des indexeurs qui définissent des valeurs, génèrent une copie.
- Les opérations qui renvoient des copies incluent : les requêtes (.query), les fonctions de manipulation de données ( .fillna, .dropna), et certaines opérations de découpage.
-
Vue :
- Indexeurs qui définissent des valeurs (_loc , _iloc, _iat, _at) modifiera la trame de données sur place par défaut.
- Les indexeurs qui obtiennent des objets à typage unique peuvent être des vues ou des copies en fonction de la disposition de la mémoire. Cependant, ce n'est pas un indicateur fiable.
Exceptions et clarifications
-
inplace=True : Certaines opérations offrent une option inplace (par exemple, _inplace=True), qui modifie le dataframe d'origine plutôt que de renvoyer une copie.
-
Objets à typage multiple : Indexeurs sur des objets à typage multiple produire toujours des copies.
-
Indexation chaînée : Opérations d'indexation chaînée (par exemple, _[_df.C <= df.B].loc[:,'B':'E'] _) ne produit pas toujours une vue et doit être évité. Utilisez plutôt une seule opération d'indexation pour spécifier explicitement le sous-ensemble à modifier : _df.loc[_df.C <= df.B, 'B':'E']_.
Exemple d'utilisation
Considérons l'exemple suivant :
<code class="python">df = pd.DataFrame(np.random.randn(8,8), columns=list('ABCDEFGH'), index=range(1,9))
df[df.C <= df.B] = 7654321</code>
Copier après la connexion
Cette opération modifie le dataframe d'origine (_df_) car l'indexeur df[df.C <= df .B] agit comme une vue en raison de son utilisation dans la définition des valeurs.
Conclusion
Comprendre les règles régissant la création d'une vue ou d'une copie dans Pandas est essentiel pour manipulation efficace des trames de données. En suivant les principes décrits ci-dessus, vous pouvez éviter les modifications involontaires des données et garantir l'intégrité des données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!