Estoy leyendo en un archivo csv con múltiples columnas de fecha y hora. Necesitaría configurar los tipos de datos al leer el archivo, pero las fechas y horas parecen ser un problema. Por ejemplo:
headers = ['col1', 'col2', 'col3', 'col4']
dtypes = ['datetime', 'datetime', 'str', 'float']
pd.read_csv(file, sep='\t', header=None, names=headers, dtype=dtypes)
Cuando se ejecuta da un error:
TypeError: no se entiende el tipo de datos "datetime"
Convertir columnas después del hecho, a través de pandas.to_datetime () no es una opción. No puedo saber qué columnas serán objetos de fecha y hora. Esa información puede cambiar y proviene de lo que sea que informe mi lista de tipos.
Alternativamente, intenté cargar el archivo csv con numpy.genfromtxt, establecer los dtypes en esa función y luego convertirlo a pandas.dataframe pero confunde los datos. ¡Cualquier ayuda es muy apreciada!
pandas.core.datetools.to_datetime
está en desuso, usepd.datetools.to_datetime
en su lugar. así:date_parser = pd.to_datetime
converters
parámetro en el que puede especificar qué columnas tienen qué convertidores. parse_dates es útil y maneja datos incorrectos, pero es más lento debido a que prueba e infiere cada valor gist.github.com/gjreda/7433f5f70299610d9b6bExiste un
parse_dates
parámetro para elread_csv
que le permite definir los nombres de las columnas que desea tratar como fechas o fechas y horas:fuente
Puede intentar pasar tipos reales en lugar de cadenas.
Pero va a ser muy difícil diagnosticar esto sin ninguno de sus datos para manipular.
Y realmente, probablemente desee que los pandas analicen las fechas en TimeStamps, por lo que podría ser:
fuente
Intenté usar la opción dtypes = [datetime, ...], pero
Encontré el siguiente error:
El único cambio que tuve que hacer es reemplazar datetime con datetime.datetime
fuente
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'