Я читаю файл csv с несколькими столбцами datetime. Мне нужно установить типы данных при чтении в файле, но проблема с датами. Например:
headers = ['col1', 'col2', 'col3', 'col4']
dtypes = ['datetime', 'datetime', 'str', 'float']
pd.read_csv(file, sep='\t', header=None, names=headers, dtype=dtypes)
При запуске выдает ошибку:
TypeError: тип данных "datetime" не распознан
Преобразование столбцов постфактум через pandas.to_datetime () - это не вариант, я не могу знать, какие столбцы будут объектами datetime. Эта информация может измениться и исходит из того, что информирует мой список типов.
В качестве альтернативы я попытался загрузить файл csv с помощью numpy.genfromtxt, установить типы dtypes в этой функции, а затем преобразовать в pandas.dataframe, но он искажает данные. Любая помощь приветствуется!
pandas.core.datetools.to_datetime
что устарел, используйтеpd.datetools.to_datetime
вместо этого. как это:date_parser = pd.to_datetime
converters
параметр, в котором вы можете указать, какие столбцы имеют какие преобразователи. parse_dates полезен и обрабатывает неверные данные, но работает медленнее из-за тестирования и выводаСуществует
parse_dates
параметр, дляread_csv
которого вы можете определить имена столбцов, которые вы хотите обрабатывать как даты или datetime:источник
Вы можете попробовать передавать фактические типы вместо строк.
Но это будет действительно сложно диагностировать без каких-либо данных, с которыми можно было бы повозиться.
И действительно, вы, вероятно, хотите, чтобы панды анализировали даты в TimeStamp, так что это может быть:
источник
Я пробовал использовать параметр dtypes = [datetime, ...], но
Я обнаружил следующую ошибку:
Единственное изменение, которое мне пришлось сделать, - это заменить datetime на datetime.datetime.
источник
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'