[PYTHON] Soyez prudent lors de la lecture de données avec des pandas (spécifiez dtype)

Lors de la lecture de données avec des pandas, il est plus sûr de spécifier dtype

Dans cet article pandas 0.18.J'utilise 1.

Si vous ne spécifiez rien pour dtype, le type sera déterminé sans autorisation. Par exemple, s'il existe les données délimitées par des tabulations suivantes

data_1.txt

id	x01	x02	x03	x04	x05	x06	x07	x08	x09	x10
0001	0.54	0.54	0.85	0.79	0.54	0.36	0.28	0.52	0.21	0.49
0002	0.72	0.68	0.77	0.69	0.07	na	0.29	0.42	0.32	0.51
0003	0.68	0.99	0.19	0.16	0.31	0.76	0.57	0.08	0.07	0.98
0004	0.98	na	0.49	0.47	0.09	0.52	0.42	0.35	0.83	0.64
0005	0.37	0.35	0.99	0.88	0.81	0.46	0.57	0.47	0.06	0.55
# coding: UTF-8

import pandas as pd
df = pd.read_csv('‪data_1.txt', header = 0, sep = '\t', na_values = 'na')
print df
	id	x01	x02	x03	x04	x05	x06	x07	x08	x09	x10
0	1	0.54	0.54	0.85	0.79	0.54	0.36	0.28	0.52	0.21	0.49
1	2	0.72	0.68	0.77	0.69	0.07	NaN	0.29	0.42	0.32	0.51
2	3	0.68	0.99	0.19	0.16	0.31	0.76	0.57	0.08	0.07	0.98
3	4	0.98	NaN	0.49	0.47	0.09	0.52	0.42	0.35	0.83	0.64
4	5	0.37	0.35	0.99	0.88	0.81	0.46	0.57	0.47	0.06	0.55

Si vous ne spécifiez pas le type, ce sera comme ci-dessus et l'identifiant sera zéro. Lorsque je vérifie le type de données id dans df.dtypes, il est int.

Dans ce cas

df = pd.read_csv('data_1.txt', header = 0, sep = '\t', na_values = 'na',
                 dtype = {'id':'object', 'x01':'float', 'x02':'float','x03':'float','x04':'float','x05':'float','x06':'float',
                          'x07':'float','x08':'float','x09':'float','x10':'float'})

print df
     id   x01   x02   x03   x04   x05   x06   x07   x08   x09   x10
0  0001  0.54  0.54  0.85  0.79  0.54  0.36  0.28  0.52  0.21  0.49
1  0002  0.72  0.68  0.77  0.69  0.07   NaN  0.29  0.42  0.32  0.51
2  0003  0.68  0.99  0.19  0.16  0.31  0.76  0.57  0.08  0.07  0.98
3  0004  0.98   NaN  0.49  0.47  0.09  0.52  0.42  0.35  0.83  0.64
4  0005  0.37  0.35  0.99  0.88  0.81  0.46  0.57  0.47  0.06  0.55

De cette façon, vous pouvez conserver la forme d'origine en spécifiant dtype. C'est col Classes à R. Je pense que les données sont lues plus rapidement lorsque dtype est spécifié.

Vous pouvez également tout lire en tant qu'objet pour le moment, puis modifier uniquement les parties nécessaires ultérieurement.

#Au début, tout lire avec objet
df = pd.read_csv('data_1.txt', header = 0, sep = '\t', na_values = 'na', dtype = 'object')

var_lst = ['x01','x02','x03','x04','x05','x06','x07','x08','x09','x10']
df[var_lst] = df[var_lst].astype(float)    #Changer le type de données en float

Recommended Posts

Soyez prudent lors de la lecture de données avec des pandas (spécifiez dtype)
Soyez prudent lorsque vous exécutez CakePHP3 avec PHP7.2
Soyez prudent lorsque vous travaillez avec des fichiers texte compressés au format gzip
Lecture de données avec TensorFlow
Visualisation des données avec les pandas
Manipulation des données avec les Pandas!
Mélangez les données avec les pandas
[Python] Changer de type avec les pandas
Conseils de traitement des données avec Pandas
Une collection de méthodes utilisées lors de l'agrégation de données avec des pandas
Soyez prudent avec les références de méthodes faciles
Faites attention à LANG pour UnicodeEncodeError lors de l'impression du japonais avec Python 3
Traçage de données polyvalent avec pandas + matplotlib
(Note) Soyez prudent avec python argparse
[Analyse du cours de l'action] pandas apprenant avec des données fictives (001: préparation de l'environnement à la lecture de fichiers)
[Python] Soyez prudent lorsque vous utilisez print
Soyez prudent avec la méthode append de Python
[Python] Formater quand to_csv avec des pandas
La barre de données EXCEL et l'échelle de couleurs peuvent également être faites avec des pandas
Paramètres de lecture de fichiers S3 avec des pandas depuis Jupyter Notebook sur AWS
Soyez prudent lorsque vous récupérez des tweets à intervalles réguliers avec l'API Twitter
Faites attention au type lorsque vous créez un masque d'image avec Numpy
Spécifiez les options lors de l'exécution de flake8 avec flycheck
⚠️ Méfiez-vous des valeurs d'argument par défaut de Python ⚠️
Essayez de convertir en données ordonnées avec les pandas
Soyez prudent lors de l'ajout d'un tableau à un tableau
[Easy Python] Lecture de fichiers Excel avec des pandas
Gérez les structures de données 3D avec les pandas
Exemple de traitement efficace des données avec PANDAS
Meilleures pratiques pour manipuler les données avec les pandas
Un mémorandum de méthode souvent utilisé lors de l'analyse de données avec des pandas (pour les débutants)
Quand to_csv avec Pandas, c'est devenu ligne par ligne
Essayez d'agréger les données de musique doujin avec des pandas
Lire les données csv Python avec Pandas ⇒ Graphique avec Matplotlib
Implémentez "Data Visualization Design # 3" avec pandas et matplotlib
Visualisez de manière interactive les données avec Treasure Data, Pandas et Jupyter.
100 langage de traitement knock-20 (à l'aide de pandas): lecture de données JSON
Enquête lorsque l'importation ne peut pas être effectuée avec python
Transformez les données de vacances en une trame de données avec les pandas
Mémo de flux lors de la récupération de données json avec urllib
Lors de la lecture d'un fichier csv avec read_csv de pandas, la première colonne devient index