Quelle est la différence entre dtype et de convertisseurs dans les pandas.read_csv?
pandas fonction read_csv() lit un .fichier csv. Sa documentation est ici
Selon la documentation, nous le savons:
dtype : Tapez un nom ou dict de la colonne -> type, par défaut Aucun type de Données
pour des données ou des colonnes. E. g. {‘a’: np.float64, ‘b’: np.int32}
(Non pris en charge avec le moteur=’python’)
et
convertisseurs : dict, par défaut Aucun Dict de fonctions pour la conversion de
les valeurs dans certaines colonnes. Les clés peuvent être des entiers ou des colonnes
les étiquettes
Lors de l'utilisation de cette fonction, je peux l'appeler
pandas.read_csv('file',dtype=object)
ou pandas.read_csv('file',converters=object)
. Évidemment, convertisseur, son nom indique que le type de données sera converti, mais je me demande le cas de dtype?
OriginalL'auteur Bryan | 2015-12-07
Vous devez vous connecter pour publier un commentaire.
La différence sémantique est que
dtype
vous permet de spécifier comment traiter les valeurs, par exemple, soit en numérique ou de type chaîne de caractères.Convertisseurs vous permet d'analyser vos données d'entrée pour le convertir en un souhaité dtype à l'aide d'une fonction de conversion, e.g, l'analyse d'une chaîne de valeur de type datetime ou à certains autres dtype.
Ici, nous voyons que les pandas tente d'intercepter les types:
Vous pouvez le voir à partir de ce qui précède que
001
et005
sont traités comme desint64
mais la chaîne de date restestr
.Si nous disons que tout est
object
alors essentiellement, tout ce qui eststr
:Ici, nous avons la force de la
int
colonne destr
et direparse_dates
d'utiliser le date_parser pour analyser la colonne de date:De même, nous aurions pu passer la
to_datetime
fonction pour convertir les dates:read_csv
invocation, bien que je n'ai pas testé pour le chevauchement des colonnes référencées dans les deuxdtypes
et laconverters
les dictionnaires si l'aide de l'API.Est-il un moyen pour faire de votre propre sniffer qui convertit dtypes? Je crois que ce serait utile de fichiers excel avec de nombreuses colonnes.
Cela ne fonctionnera pas des feuilles de calcul excel sont importées à l'aide d'un 3ème partie module de sorte que les dtypes sont fournis par l'intermédiaire de ce module. Si c'était un fichier csv vous pouvez définir votre propre fonction et de charge ce de convertisseur et appliquée sur chaque colonne, qui serait à l'œuvre
OriginalL'auteur EdChum