Je lis dans un fichier csv avec plusieurs colonnes datetime. J'aurais besoin de définir les types de données lors de la lecture du fichier, mais les datetimes semblent être un problème. Par exemple:
headers = ['col1', 'col2', 'col3', 'col4']
dtypes = ['datetime', 'datetime', 'str', 'float']
pd.read_csv(file, sep='\t', header=None, names=headers, dtype=dtypes)
Lorsque l'exécution donne une erreur:
TypeError: type de données "datetime" non compris
La conversion des colonnes après coup, via pandas.to_datetime () n'est pas une option, je ne peux pas savoir quelles colonnes seront des objets datetime. Cette information peut changer et provient de tout ce qui informe ma liste de dtypes.
Alternativement, j'ai essayé de charger le fichier csv avec numpy.genfromtxt, de définir les dtypes dans cette fonction, puis de le convertir en pandas.dataframe mais cela brouille les données. Toute aide est grandement appréciée!
pandas.core.datetools.to_datetime
est obsolète, utilisez à lapd.datetools.to_datetime
place. comme ceci:date_parser = pd.to_datetime
converters
paramètre dans lequel vous pouvez spécifier quelles colonnes ont quels convertisseurs. parse_dates est utile et gère les mauvaises données, mais il est plus lent car il teste et infèreIl existe un
parse_dates
paramètre pourread_csv
lequel vous permet de définir les noms des colonnes que vous souhaitez traiter comme dates ou datetimes:la source
Vous pouvez essayer de transmettre des types réels au lieu de chaînes.
Mais il sera vraiment difficile de diagnostiquer cela sans aucune de vos données à bricoler.
Et vraiment, vous voulez probablement que les pandas analysent les dates dans TimeStamps, donc cela pourrait être:
la source
J'ai essayé d'utiliser l'option dtypes = [datetime, ...], mais
J'ai rencontré l'erreur suivante:
Le seul changement que j'ai dû faire est de remplacer datetime par datetime.datetime
la source
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'