Je charge un fichier csv dans un Pandas DataFrame. Pour chaque colonne, comment spécifier le type de données qu'il contient à l'aide de l'argument dtype
?
np.bool_
et pd.tslib.Timestamp
sans chance.Code:
import pandas as pd
import numpy as np
df = pd.read_csv(<file-name>, dtype={'A': np.int64, 'B': np.float64})
Il existe de nombreuses options pour read_csv qui traiteront tous les cas que vous avez mentionnés. Vous voudrez peut-être essayer dtype = {'A': datetime.datetime}, mais souvent vous n'aurez pas besoin de dtypes car pandas peut inférer les types.
Pour les dates, vous devez alors spécifier les options parse_date :
parse_dates : boolean, list of ints or names, list of lists, or dict
keep_date_col : boolean, default False
date_parser : function
En général, pour convertir des valeurs booléennes, vous devrez spécifier:
true_values : list Values to consider as True
false_values : list Values to consider as False
Ce qui transformera n'importe quelle valeur de la liste en booléen true/false. Pour des conversions plus générales, vous aurez probablement besoin
convertisseurs: dict. Dict facultatif de fonctions pour convertir des valeurs dans certaines colonnes. Les clés peuvent être des entiers ou des étiquettes de colonne
Bien que dense, consultez ici pour la liste complète: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.parsers.read_csv.html