Maison > développement back-end > Tutoriel Python > Comment optimiser Pandas `read_csv` avec les options `dtype` et `low_memory` ?

Comment optimiser Pandas `read_csv` avec les options `dtype` et `low_memory` ?

Susan Sarandon
Libérer: 2024-11-08 18:08:02
original
329 Les gens l'ont consulté

How to Optimize Pandas `read_csv` with `dtype` and `low_memory` Options?

Pandas read_csv : options low_memory et dtype

Lors de l'utilisation de pd.read_csv('somefile.csv'), vous pouvez rencontrer un DtypeWarning indiquant que les colonnes ont des types mixtes. La spécification de l'option dtype peut éviter cette erreur et améliorer les performances.

Comprendre l'option low_memory

L'option low_memory obsolète n'affecte pas réellement le comportement. Cependant, cela est lié à l'option dtype car deviner les types de données pour chaque colonne peut être gourmand en mémoire.

Protection contre les incompatibilités de données

Si la dernière ligne de votre fichier contient des données inattendues, la spécification de types peut entraîner l'échec du processus de chargement. Par exemple, si une colonne spécifiée comme entier contient une valeur de chaîne telle que "foobar", le chargement sera interrompu.

Spécification des types

Pour éviter de telles erreurs, explicitement spécifiez les types lors de la lecture du fichier CSV. L'utilisation de l'option dtype attribue le type de données correct à chaque colonne, permettant une analyse efficace et réduisant la consommation de mémoire.

Dtypes disponibles

Pandas prend en charge divers dtypes, notamment :

  • Types Numpy : float, int, bool, timedelta64[ns], datetime64[ns]
  • Extensions Pandas :

    • datetime64[ns, ] (horodatage prenant en compte le fuseau horaire)
    • catégorie (énumération)
    • période[] (heure période)
    • Sparse (données avec des trous)
    • Intervalle (indexation)
    • entiers nullables (Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64)
    • chaîne (pour chaîne opérations)
    • booléen (bool nullable)

Gotchas

  • Paramètre dtype=object fait taire l'avertissement mais n'améliore pas l'efficacité de la mémoire.
  • Paramètre dtype=unicode n'a aucun effet puisque numpy représente l'unicode comme objet.
  • Les convertisseurs peuvent être utilisés pour gérer des données inattendues, mais ils sont inefficaces en raison de la nature à processus unique de Pandas.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal