Estou lendo em um arquivo csv com várias colunas datetime. Eu precisaria definir os tipos de dados após a leitura no arquivo, mas às vezes parece ser um problema. Por exemplo:
headers = ['col1', 'col2', 'col3', 'col4']
dtypes = ['datetime', 'datetime', 'str', 'float']
pd.read_csv(file, sep='\t', header=None, names=headers, dtype=dtypes)
Quando a execução dá um erro:
TypeError: tipo de dados "datetime" não entendido
A conversão de colunas após o fato, via pandas.to_datetime (), não é uma opção. Não sei quais colunas serão objetos de data e hora. Essa informação pode mudar e vem de tudo o que informa minha lista de tipos.
Como alternativa, tentei carregar o arquivo csv com numpy.genfromtxt, definir os dtypes nessa função e depois converter em um pandas.dataframe, mas ele confunde os dados. Qualquer ajuda é muito apreciada!
pandas.core.datetools.to_datetime
está obsoleto, use em seupd.datetools.to_datetime
lugar. assim:date_parser = pd.to_datetime
converters
parâmetro em que você pode especificar quais colunas têm quais conversores. parse_dates é útil e os dados alças ruim, mas é mais lento devido a testar e inferir cada valor gist.github.com/gjreda/7433f5f70299610d9b6bHá um
parse_dates
parâmetro para oread_csv
qual permite definir os nomes das colunas que você deseja tratar como datas ou horários:fonte
Você pode tentar passar tipos reais em vez de cadeias.
Mas será realmente difícil diagnosticar isso sem que nenhum dos seus dados seja mexido.
E, realmente, você provavelmente deseja que os pandas analisem as datas no TimeStamps, para que possa ser:
fonte
Eu tentei usar a opção dtypes = [datetime, ...], mas
Eu encontrei o seguinte erro:
A única alteração que tive que fazer é substituir datetime por datetime.datetime
fonte
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'