Especifique los dtypes correctos para pandas.read_csv para tiempos de datos y valores booleanos

Estoy cargando un archivo csv en Pandas DataFrame. Para cada columna, ¿cómo especifico qué tipo de datos contiene usando el argumento dtype ?

  • Puedo hacerlo con datos numéricos (código en la parte inferior) …
  • Pero, ¿cómo puedo especificar los datos de tiempo
  • ¿Y datos categóricos como factores o booleanos? He intentado np.bool_ y pd.tslib.Timestamp sin suerte.

Código:

 import pandas as pd import numpy as np df = pd.read_csv(, dtype={'A': np.int64, 'B': np.float64}) 

Hay muchas opciones para read_csv que manejarán todos los casos que mencionaste. Es posible que desee probar dtype = {‘A’: datetime.datetime}, pero a menudo no necesitará dtypes ya que los pandas pueden inferir los tipos.

Para las fechas, entonces necesita especificar las opciones de fecha parse :

 parse_dates : boolean, list of ints or names, list of lists, or dict keep_date_col : boolean, default False date_parser : function 

En general, para convertir valores booleanos, deberá especificar:

 true_values : list Values to consider as True false_values : list Values to consider as False 

Lo que transformará cualquier valor en la lista al booleano verdadero / falso. Para conversiones más generales lo más probable es que necesites

convertidores: dict. Dict opcional de funciones para convertir valores en determinadas columnas. Las claves pueden ser enteros o tags de columna

Aunque denso, consulte aquí para ver la lista completa: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.parsers.read_csv.html