Quand Pandas génère-t-il une vue ou une copie ?
Lors de l'accès aux données dans une trame de données Pandas, certaines opérations renvoient des vues (références aux données d'origine) tandis que d'autres générer des copies. Comprendre les règles régissant ce comportement est crucial pour une manipulation efficace des données.
Règles générales
-
Opérations Générer une copie : Toutes les opérations, à l'exception de celles répertoriées ci-dessous, créent généralement des copies. .
-
Modification sur place : Si inplace=True est spécifié, certaines opérations peuvent modifier directement le dataframe d'origine.
Indexeurs
-
Définir les indexeurs : Les indexeurs qui définissent des valeurs (par exemple, .loc, .iloc, .iat, .at) effectuent des modifications sur place.
-
Obtenez des indexeurs sur un seul -Objets typés :Obtenir des indexeurs renvoient souvent des vues sur des objets à type de données unique (bien que ce comportement puisse varier en fonction de la disposition de la mémoire).
-
Obtenir des indexeurs sur des objets typés à plusieurs types :Obtenir les indexeurs sur des objets avec plusieurs types de données renvoient toujours des copies.
Exemple d'analyse
Dans l'exemple donné,
<code class="python">df[df.C <= df.B].ix[:,'B':'E']</code>
Copier après la connexion
la sélection indexée en chaîne ne maintient pas de manière fiable une vue sur la trame de données d'origine. Utilisez plutôt la syntaxe correcte :
<code class="python">df.loc[df.C <= df.B, 'B':'E']</code>
Copier après la connexion
Éviter les comportements inattendus
Pour éviter tout comportement imprévisible, respectez strictement la pratique suivante :
- Utilisez le .loc indexeur pour les sélections basées sur les lignes et .iloc pour les sélections basées sur les entiers.
- Placez la condition de requête dans l'argument de l'indexeur, plutôt que de chaîner les indexeurs.
En suivant ces règles, vous pouvez gérez efficacement les copies et les vues dans les dataframes Pandas, garantissant une manipulation efficace des données et des résultats prévisibles.
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!